J'ai une base de données Firebase avec les règles suivantes:règles de base de données Firebase et erreur PERMISSION_DENIED
{
"rules": {
"messages": {
"$message": {
".read": "true",
".write": "newData.child('uid').val() === auth.uid"
}
}
}
}
La structure de données ressemble à ceci:
Je peux écrire sans problème , mais lorsque j'essaie de lire, j'obtiens l'erreur suivante:
Error: permission_denied at /messages: Client doesn't have permission to access the desired data.
J'ai lu les documents Firebase, et ma structure ressemble à celle des exemples donnés. S'il vous plaît, quelqu'un peut me dire ce qui ne va pas avec ça? S'il vous plaît noter: déplacer la règle de lecture sous "messages" résout le problème mais n'est pas la solution que je veux que je veux écrire une règle basée sur les données de message (semblable à la règle d'écriture) une fois que j'ai le règle de base de travail. Je veux finir avec une règle comme ceci:
{
"rules": {
"messages": {
"$message": {
".read": "data.child('uid').val() === auth.uid",
".write": "newData.child('uid').val() === auth.uid"
}
}
}
}
hmmm .. J'ai commencé avec une structure comme ça mais mon problème est que j'ai deux cas d'utilisation; Un où un utilisateur obtient de voir seulement leurs propres messages, et deux où un administrateur peut voir tous les messages. La requête d'administration doit pouvoir être filtrée par des attributs tels qu'un message ouvert ou fermé. Lorsque j'ai essayé de le faire avec une structure plus imbriquée, j'ai trouvé que l'écriture de la requête d'administration était impossible (trop d'imbrication). On dirait que je suis de retour à la planche à dessin ... :-( –
Donc, seul l'administrateur peut voir tous les messages? Et donc un utilisateur ne peut voir leurs messages? – Callam
Oui, c'est vrai J'ai un jeton que je peux identifier Le problème est de structurer les données pour que je puisse les interroger et que les utilisateurs puissent lire leurs propres messages –