2017-09-24 1 views
0

Dans ma base de données firebase, j'ai mis la règle suivante:Permission refusée à mettre en valeur la base de données Firebase

{ 
    "rules": { 
    "Users": { 
     "$uid": { 
     ".write": "$uid === auth.uid", 
     ".read": "$uid === auth.uid" 
     } 
    } 
    } 
} 

Je développe l'application iOS avec Firebase. J'utilise Facebook authentification pour se connecter à mon application, je voudrais ajouter l'ID utilisateur à la base de données lorsque la connexion est réussie, voici mon code:

let ref = Database.database().reference() 
... 
// I got uid 
ref.child("Users").setValue(uid) 

Mais je me suis erreur:

setValue: or removeValue: at /users failed: permission_denied 

Pourquoi ?

Répondre

0

Vous n'avez pas la permission d'écrire une valeur à /users, donc l'opération est refusée.

Vous avez avez la permission d'écrire une valeur à /users/$uid. Vous essayez probablement de faire quelque chose comme ceci:

ref.child("Users").child(uid).setValue(true) 
+0

Merci, mais comment puis-je ajouter uid à "Utilisateurs" seulement pour Facebook utilisateur authentifié? Comme je l'ai mentionné dans ma question, le 'uid' est l'utilisateur connecté avec succès (connexion Facebook) –

+0

L'extrait de code que j'ai partagé résout le message d'erreur que vous avez dans votre question. Si vous souhaitez également détecter si l'utilisateur est connecté à Facebook, consultez la page https://stackoverflow.com/questions/39056853/how-to-detect-if-a-user-has-signed-in-to-my- app-using-firebase-avec-facebook-em –