Ich versuche, neue Benutzer zu erstellen, nachdem ich mit Facebook/Google anmelden, aber immer Fehler mit:Benutzer konnte nicht PERMISSION_DENIED erstellen: Zugriff verweigert
error_handler.js:46 EXCEPTION: Uncaught (in promise): Error: PERMISSION_DENIED: Permission deniedErrorHandler.handleError @ error_handler.js:46next @ application_ref.js:291schedulerFn @ async.js:89SafeSubscriber.__tryOrUnsub @ PERMISSION_DENIED: Permission denied
meine Regeln sind:
"users": {
"$uid": {
// grants write access to the owner of this user account whose uid must exactly match the key ($uid)
".write": "auth !== null && auth.uid === $uid",
// grants read access to any user who is logged in with Facebook
".read": "auth !== null && (auth.provider === 'facebook' || auth.provider === 'google')"
}
}
wenn Ich entferne meine Regeln alle funktioniert ok.
Mein Code ist:
private createNewUser(user: any): any {
const newUser = this.af.database.object('users/' + user.uid);
newUser.set({
username: user.name,
email: user.email,
profile_picture: user.avatar,
provider : user.provider,
create_date: new Date().toISOString().slice(0, 10).replace(/-/g, "")})
}
was fileds Muss ich überprüfen?
Wenn Sie 'console.log (user)' in 'createNewUser()' zeigt es ein Objekt mit einer 'uid' Eigenschaft? –
ja ich habe diese UID auf Benutzer, @FrankvanPuffelen ist das ok zu verwenden ".write": "! Data.exists() || auth.uid === $ uid", wenn ich einen Benutzer erstellen möchte? –