Я пытаюсь создать защищенную паролем комнату чата и нашел этот SO ответ пользователю в качестве примера:
Firebase: подход к хранению паролей комнаты
Проблема в том, что, учитывая набор правил в ответе, я не могу понять, как отправить новые данные. Мои правила выглядят так:
{
"rules": {
"myApp":{
"chatRooms" : {
"$roomID" : {
"password": {
".read": "false",
".write": "root.child('myApp/chatRooms/' + $roomID + 'chatInfo').child('admin').val() == auth.uid"
},
"chatInfo" : {
".read":true,
".write": "data.child('admin').val() === auth.uid"
},
"members" : {
"$user_id" : {
".validate": "$user_id == auth.uid && newData.val() == root.child('feeds/chatRooms/' + $roomID + '/password').val()"
}
},
"messages" : {
".read" : "root.child('feeds/chatRooms/' + $roomID + '/members/' + auth.uid).exists()"
}
}
}
}
}
}
Так что теперь мне нужно выдвинуть новый chatRoom. Но если я назову это:
var obj = {
password: "test",
chatInfo : {admin: this.state.currentUser.uid, chatName: "foobar"}
};
firebase.database().ref(`myApp/chatRooms`).push(obj);
Сбой, потому что у меня нет правил записи для отправки в chatRooms / $ uid. Если я сделаю это.
Как правильно выдвигать новые данные с помощью таких правил?