javascript - 如何增加 Firebase 中的记录?

标签 javascript firebase firebase-realtime-database

对于每个用户,我都有一个 Firebase 记录“searches: 0”。在某些情况下,我想将当前计数加 1。我已经走到这一步了,但由于某种原因,它不起作用:

du.fbAddSearchCount = function() {
    var usr = new Firebase(firebase_url + "/users/" + user_uid);

    usr.on("value", function(snapshot) {
        user = snapshot.val();

       var usersRef = ref.child("users");

       var fbUser = usersRef.child(user_uid);
       fbUser.update( {
           searches: user.searches + 1
       });
    }
}

有什么帮助可以让它正常工作吗?

谢谢。

最佳答案

在 firebase JavaScript SDK v7.14.0 中有一个新方法 ServerValue.increment()

它的性能更好,而且更便宜,因为不需要往返。

参见 here

Added ServerValue.increment() to support atomic field value increments without transactions.

API 文档 here

使用示例:

firebase.database()
    .ref('users')
    .child(user_uid)
    .child('searches')
    .set(firebase.database.ServerValue.increment(1))

或者你可以递减,只需将 -1 作为函数参数,如下所示:

firebase.database()
    .ref('users')
    .child(user_uid)
    .child('searches')
    .set(firebase.database.ServerValue.increment(-1))

关于javascript - 如何增加 Firebase 中的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31423124/

相关文章:

javascript - jquery点击事件

node.js - 显示错误的 firebase 函数无法读取未定义的先前属性

ios - 查询子数组中的对象

javascript - 正则表达式替换保留空格的单词

javascript - 修改jQuery插件: Treeview script to expand and collapse function -> exclude area

javascript - 如何对PDF文档页面重新排序?

javascript - 使用 Firebase 中两个位置的数据,同时读取数据

javascript - Firestore - 无法编码值 - 使用 Promise.all() 和 MongoDB Insert 添加文档时

firebase - 从 Firebase 数据库中删除节点

ios - 快速查询到 Firebase Firestore 嵌套数组