Firebase ServerValue.increment(1) 不适用于云功能
Firebase ServerValue.increment(1) doesnt work on cloud functions
我正在尝试使用 firebase admin sdk 上的增量功能 node.js。
我的功能已部署到云功能节点版本 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: Cannot read property 'increment' of undefined
我做错了什么?
您声明 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()
的调用中,因为它是异步的并且 returns 是一个承诺。在发送响应之前,您需要使用该承诺等待写入完成。
我正在尝试使用 firebase admin sdk 上的增量功能 node.js。
我的功能已部署到云功能节点版本 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: Cannot read property 'increment' of undefined
我做错了什么?
您声明 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()
的调用中,因为它是异步的并且 returns 是一个承诺。在发送响应之前,您需要使用该承诺等待写入完成。