我是Firebase实时数据库的新手,我想在我的项目中实现firebase实时数据库但是想在不使用node.js的情况下实现它。可能吗 ?请帮我解决这个问题。
如果可以在不使用node.js的情况下使用firebase实时数据库,那么我该如何进一步继续。我还在下面放置了示例代码。请给我一些建议。
var config = {
apiKey: "AIzaSyAEERy5Jbnns9CUurD7NwmOXXXXXXXXXX",
authDomain: "testing-XXXXX-db.firebaseapp.com",
databaseURL: "https://testing-XXXXX-db.firebaseio.com",
projectId: "testing-XXXXXX-db",
storageBucket: "testing-XXXXX-db.appspot.com",
messagingSenderId: "25861013XXXX"
};
firebase.initializeApp(config);
// Get a reference to the database service
var database = firebase.database();
我已成功初始化它,我也从云数据库中获得结果。
firebase.database().ref("/chat").orderByChild("name").on("value", function(snapshot) {
snapshot.forEach(function(childSnapshot) {
// key
var key = childSnapshot.key;
// value, could be object
var childData = childSnapshot.val();
console.log(childData);
$("#history").append('<div class="container"><p>'+childData.name+':'+childData.message+'</p><span class="time"> Time : '+childData.time+' </span></div>');
});
});
当我想使用数据库触发器进行聊天应用程序的实时更新时,问题就出现了。
我想使用以下事件/功能。
onWrite(), which triggers when data is created, destroyed, or changed in the Realtime Database.
onCreate(), which triggers when new data is created in the Realtime Database.
onUpdate(), which triggers when data is updated in the Realtime Database.
onDelete(), which triggers when data is deleted from the Realtime Database.
非常感谢任何帮助。抱歉语法/语言不好。因为我真的坚持这个,所以请不要给出负面评价。
答案 0 :(得分:3)
我没有使用Firebase的最佳体验,但根据我的理解,您列出的那些功能是通过使用云功能触发的,而这些功能并不需要响应浏览器中的更改。
在浏览器中,要回复子更改,请使用child_changed
:
firebase.database().ref("chat").orderByChild("name").on("child_changed", function(snapshot) {
//-- Whatever.
});
要回复添加的儿童,请使用child_added
:
firebase.database().ref("chat").orderByChild("name").on("child_added", function(snapshot) {
//-- Whatever.
});
要回复儿童,请使用child_removed
:
firebase.database().ref("chat").orderByChild("name").on("child_removed", function(snapshot) {
//-- Whatever.
});
另外,请注意,如果您使用.on(&#34;值&#34;)进行任何操作,每次数据发生任何变化时都会返回一个新的数据集,这意味着每次发送新消息时,可能会返回entiiiiiiiiiii聊天,而不是仅返回新消息。可能不想这样做:
firebase.database().ref("chat").orderByChild("name").on("value", function (){});
如果您只想获取该聊天数据一次,请使用.once("value")
。
我希望这有帮助吗?