พิจารณาโค้ดต่อไปนี้สำหรับการเขียนแบบอะตอมมิกในหลายตำแหน่งใน 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/
หรือกลับกัน