Рассмотрим следующий код для атомарной записи в нескольких местах в FireBase:
var ref = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com");
var newPostRef = ref.child("posts").push();
var newPostKey = newPostRef.key();
var updatedUserData = {};
updatedUserData["users/"+authData.uid+"/posts/" + newPostKey] = true;
updatedUserData["posts/" + newPostKey] = {
title: "New Post",
content: "Here is my new post!"
};
ref.update(updatedUserData, function(error) {
if (error) {
console.log("Error updating data:", error);
}
});
Этот подход можно использовать для обновления сообщения в разных местах, но как обеспечить атомарное обновление на стороне сервера? (через правила).
Как я могу убедиться, что пользователи не могут обновить местоположение /posts/
(посредством его прямой ссылки) без заполнения users/UID/posts/
или наоборот?