首页 文章

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

提问于
浏览
0

我是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();

我已成功初始化它,我也从 Cloud 数据库中获得结果 .

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.

任何帮助都非常感谢 . 抱歉语法/语言不好 . 请不要给出负面评论,因为我真的被困在这里 .

1 回答

  • 3

    我对Firebase没有最丰富的经验,但根据我的理解,您列出的那些功能通过使用 Cloud 功能触发,这些功能不需要响应浏览器中的更改 .

    在浏览器中,要响应子更改,请使用 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”),那么每次数据以任何方式更改时都会返回一个新数据集,这意味着每次新消息时这可能会返回entiiiiiiiiiire聊天发送,而不是只返回新消息 . 可能不想这样做:

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

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

    我希望这有帮助?

相关问题