Правило userid для написания своих постов - PullRequest
0 голосов
/ 04 мая 2020

У меня есть база данных json вот так:

сообщений:

-Hhnfdb743HvGdF (the post key)
 |
 --- user: josh
 |
 --- profile: /img/img.jpg
 |
 --- userid: v5s8fd8f7 (the auth user id from firebase auth)

Я бы хотел, чтобы только этот идентификатор пользователя записывал его данные, поэтому я стараюсь:

 "posts": {
    "$uid": {
        ".read": true,
        ".write": "auth != null && 
               auth.uid == data.child('userid').val()"
    }
 }

Проблема в том, что он всегда запрещает, даже если ID пользователя совпадает с auth. есть идеи почему?

/posts/-Hhnfdb743HvGdF/userid/v5s8fd8f7

спасибо!

1 Ответ

2 голосов
/ 04 мая 2020

Вы используете data для поиска UID, то есть данных, которые существуют до этой операции. Чтобы получить данные в том виде, в каком они существуют после этой операции (если операция разрешена), используйте newData:

auth.uid == newData.child('userid').val()"

См. Документацию Firebase по существующие данные против новых данные .

...