javascript - Firebase ServerValue.increment(1) 不适用于云函数

标签 javascript node.js firebase firebase-realtime-database firebase-admin

我正在尝试使用 firebase admin sdk for node.js 上的增量功能。
我的函数部署到云函数 Node 版本10

这是代码

let admin = require('firebase-admin').initializeApp({
    databaseURL: "https://igibo-b0b27.firebaseio.com",
    projectId: "igibo-b0b27"
});

const igDatabase = admin.database();

exports.test = (req, res) => {

igDatabase.ref('test123').set(admin.database.ServerValue.increment(1));
res.status(200).send('ok');
};

这是package.json

{
  "name": "authenticate",
  "version": "1.0.0",
   "dependencies": {
 
     "firebase-admin": "^9.1.1"
   }
}

但是当我尝试调用该函数时,我得到TypeError:无法读取未定义的属性“增量”

我做错了什么?

最佳答案

您声明 admin 的方式不适合与 ServerValue 一起使用。改用这个:

let admin = require('firebase-admin')

admin.initializeApp({
    databaseURL: "https://igibo-b0b27.firebaseio.com",
    projectId: "igibo-b0b27"
});

const igDatabase = admin.database();

exports.test = (req, res) => {
    igDatabase.ref('test123').set(admin.database.ServerValue.increment(1))
    .then(() => { res.status(200).send('ok'); })
};

另请注意,我将 then 添加到对 set() 的调用中,因为它是异步的并返回一个 promise 。您需要使用该 promise 来等待写入完成,然后再发送响应。

关于javascript - Firebase ServerValue.increment(1) 不适用于云函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63707513/

相关文章:

javascript - 带有大图像的 Facebook 自定义故事 - Open Graph with Javascript

node.js - Sailsjs - Hook orm 加载时间过长 - 模数

node.js - 无法将 node.js 应用程序部署到 heroku

database - 如何使用 flutter 更新 firestore 中所有文档的单个字段?

javascript - rome.js 值更改回调?

javascript - 创建包含字符串的单个字符的数组。这些正则表达式是如何工作的?

javascript - 表不再更新到 firebase、React

java - Firebase Android 聊天示例 : Failed to bounce to type

javascript - 有没有办法在服务器端模型 ag-grid 中实现快速过滤?

node.js - 在接受请求之前等待数据库连接