В моем приложении я хочу иметь представление «может читать» и «может писать». Когда приложение запускается без существующих параметров ("первый пользователь"), создаются 2 случайных хэша вместе с секретом приложения firebase, которые они отправляются в PHP FirebaseTokenGenerator для получения моего токена.
Затем я хочу сделать это:
- Первый хэш («прочитанный хэш») представляет запись «анонимный пользователь».
- Второй хэш («хэш записи») представляет собой «ключ», который является дочерней записью пользовательской записи.
Что выглядит так:
<appname>
users
<read_hash>
key
<write_hash>
[other user related data]
...
Хэши можно использовать в качестве параметров URL, например. "myapp.com/#read_hash/write_hash"
Чего я хочу добиться, так это:
- когда у пользователя есть только его read_hash (вызывающий только «myapp.com/#read_hash»), он должен иметь возможность ВИДЕТЬ все свои записи, которые он ввел в первый раз (когда приложение создает для него write_hash / «ключ»). Но ему не разрешено их изменять.
- Когда он предоставляет свой write_hash (вызывая «myapp.com/#read_hash/write_hash»), запись в Firebase разрешена.
Мои правила безопасности:
{
"rules": {
"users": {
"$user": {
".read": "$user == auth.read_hash",
".write": "$user == auth.read_hash && root.child('users').child($user).child('key').val() == auth.write_hash"
}
}
}
}
Моя проблема: как мне сохранить write_hash в первый раз без моего правила безопасности «.write», запрещающего запись??
Любая другая идея, как этого добиться? Любые архитектурные / несоответствия?
Я использую эти библиотеки:
- Backbone JS с backbone-firebase.js
- FirebaseTokenGenerator PHP
Заранее спасибо.