2017-06-28 1 views
1

Je ne peux pas définir de valeur dans ma base de données Firebase à l'aide de setValue(). Dans les logs il me renvoie setValue à ... Permission refusée. J'ai vérifié mes règles:Firebase: autorisation refusée - setValue()

{ 
    "rules": { 
    ".read": "auth == null", 
    ".write": "auth == null" 
    } 
} 
+0

Vos règles actuelles exigent que l'utilisateur ne soit pas authentifié. Plus probablement, vous voulez utiliser '" .write ": true', ce qui permet à n'importe quel utilisateur d'écrire, peu importe s'il est authentifié ou pas. –

Répondre

0

Essayez de changer vos règles à la suivante et ça va fonctionner.

{ 
    "rules": { 
    ".read": true, 
    ".write": true 
    } 
} 

Selon le commentaire de Frank van Puffelen vos règles exigent que l'utilisateur est authentifié pas.

Vous pouvez en savoir plus sur les règles d'authentification here pour d'autres options si vous avez besoin d'authentification plus sécurisée

Hope this vous aide

+0

Merci, ça fonctionne. Cependant, avant que je puisse obtenir des données à partir des mêmes données de base de données avec mes règles. Ma question est pourquoi maintenant il faut changer les règles? Cela dépend-il de l'enregistrement de l'utilisateur? Parce que maintenant j'inscris les utilisateurs dans l'autorisation? S'il vous plaît pouvez-vous répondre –

+0

Avec les autorisations ci-dessus, vous dites que n'importe qui peut lire et écrire à partir de cette base de données sans aucune authentification (peu importe si elles sont authentifiées). Avec votre code précédent, vous dites que le ne doit pas être authentifié. C'est à dire. utilisateurs authentifiés ne peuvent rien faire –

0

Tout d'abord votre utilisateur doit être authentifié comme Firebase fournir beaucoup de plates-formes pour rendre l'utilisateur authentifié avec ça. Exemple: Google, Facebook, Twitter, etc. Lorsque l'utilisateur s'est authentifié par la console Firebase, il a accès à la base de données et au stockage appropriés. Vous pouvez également créer un utilisateur en tant qu'invité en utilisant l'authentification anonyme Firebase. En procédant à l'authentification, chaque utilisateur obtient un UID que vous pouvez utiliser pour y accéder en écrivant des règles si vous voulez des règles différentes pour différents utilisateurs.

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

Par défaut, vous obtiendrez quelque chose comme ceci dans votre section des règles de base de données: -

{ 
    "rules": { 
    ".read": "auth != null", 
    ".write": "auth != null" 
    } 
} 

Cela signifie simplement que si l'utilisateur authentifié Distribuez alors que lecture et en écriture. Appliquer à tous les utilisateurs. En faisant quelque chose comme ceci, vous rendez votre base de données accessible à tout le monde et aussi aux personnes qui n'utilisent pas votre produit. Vous pouvez le faire à des fins de test de votre produit, mais ce n'est pas un moyen sécurisé.

+0

Merci pour l'information. Il va être très utile à l'avenir –

+0

Votre bienvenue @AssetBekbossynov – anandwana001