0

Le simulateur permet la lecture/écriture sur la touche Posts, mais les résultats sont corrects pour les règles clés des utilisateurs. Chaque message sous Posts a une valeur d'utilisateur représentant un utilisateur dans la clé Users.Le simulateur de règles DB Firebase permet la lecture et l'écriture par des utilisateurs non authentifiés.

Mes règles sont-elles erronées ou le simulateur est-il incorrect? Soyez doux, je suis nouveau à Firebase. :)

Screenshot

Deux égaux:

Screen

Redacted Voir les données: https: // i.stack.imgur.com/GaYMj.png (supprimer les espaces autour de "//")

Répondre

1

Essayez de modifier vos règles pour vérifier qu'un enfant uid existe. Par exemple:

".read": "data.child('uid').exists() && data.child('uid').val() === auth.uid" 

Sur la base d'un test rapide, je pense que ce qui est est que lorsque survenant un enfant uid n'existe pas, l'évaluation des data.child('uid').val() échoue et est gérée en lui attribuant une valeur de faux. De même, parce que l'utilisateur n'est pas authentifié, auth est null et auth.uid est également évalué à false. Donc, votre règle devient effectivement ".read": "false === false", ce qui est vrai.

Lorsque j'ai simulé une lecture en utilisant votre règle et que je n'avais pas d'enfant uid dans ma base de données sous /posts/1, la lecture a été accordée, comme vous l'avez signalé. Lorsque j'ai ajouté un enfant uid, il n'a pas été accordé.

+0

uid existe toujours pour chaque clé de publication. voir la capture d'écran de ma vue de données expurgée. Je vais essayer votre exemple et rendre compte. – budd

+0

Cela a fonctionné. Mais est-ce parce que cela ne fonctionne pas avec les données réelles ou est-ce vraiment le vrai correctif pour mes données (voir l'écran des données expurgées)? – budd

+0

Le simulateur utilise les données réelles dans votre base de données. La capture d'écran n'affiche que les données pour la clé '- CZWF'. Je ne sais pas ce qui est sous la clé «1», c'est ce que vous avez utilisé dans votre exemple. –