繁体   English   中英

如何在没有Node.js的情况下使用Firebase实时数据库

[英]How to use firebase realtime database without node.js

我是Firebase Realtime Database的新手,我想在我的项目中实现Firebase Realtime数据库,但想要不使用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.

任何帮助都非常感谢。 不好的语法/语言的歉意。 请不要给予负面评价,因为我真的很坚持。

我对Firebase的了解不是最多,但是据我了解,您列出的那些功能是通过使用Cloud Functions触发的,这些功能不需要响应浏览器中的更改。

在浏览器中,要响应子项更改,请使用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(“ value”),则每次数据以任何方式更改时都会返回一个新的数据集,这意味着这可能会在每次收到新消息时返回ent chat发送,而不仅仅是返回新消息。 可能不想这样做:

 firebase.database().ref("chat").orderByChild("name").on("value", function (){});

如果您只想获取一次聊天数据,请使用.once("value")

我希望这有帮助?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM