Я пытаюсь установить доступ для чтения к данным, которые пользователь записывает в базу данных реального времени firebase.
Я даю каждой записи в firebase то, что я использовал для этой записи таким образом вкод:
final DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Chat").child(myId));
Но следующий код не работает в базе данных реального времени firebase:
{
"rules": {
"Chat": {
"$uid": {
".read": "$uid === auth.uid",
(more code here)
}
}
}
}
Я использую анонимную подпись для входа в firebase, возможно, поэтомуне распознает его как UID, или, может быть, просто это не UID.
Каким было бы правило Firebase для этого случая?Я предполагаю, что, изменив "$ uid" на "доллмоя структура базы данных в реальном времени:
Level1
Level2 (The one corresponding to "Chat")
Level3.1 (this one should match with the id, it's named with its name)
Level4 (field 1)
Level4 (field 2)
Level4 (field 3)
Level3.2
Level4 (field 1)
Level4 (field 2)
Level4 (field 3)
С другой стороны, я думаю, что нашел решение, изменив правило на ".read": "$ uid === $ uid", но я 'Я не могу проверить его должным образом.
Я хочу проверить, что если бы пользователь с $ uid, например, "222", попытался бы получить доступ к полю 1 поля с "111", это было бы невозможно,но я не могу найти способ сделать это в коде в качестве теста.
Может ли кто-нибудь подтвердить, что так будет правильно, или как я могу выполнить упомянутый тест?