如何解决firebase 云功能 ServerValue 增量不起作用
我有一个火力点功能。我想在这里增加 ServerValue。但它不起作用,它给出了错误。我哪里做错了? 我附上了下面的控制台屏幕截图。 (注意:我对javascript不是很了解,java代码中也可能有错误。)
const functions = require("firebase-functions");
const admin = require("firebase-admin");
admin.initializeApp(functions.config().firebase);
const database = admin.database();
async function sirala(dil,lig,oyunTipi) {
await database.ref("/turnuvalar/" + dil + "/" + lig + "/" + oyunTipi + "/users/").once("value").then(async function(snap) {
const users = [];
const updatesLig = {};
const refLig = database.ref().child("ligler").child(dil).child(lig).child("users");
snap.forEach((childSnap) => {
const id = childSnap.key;
const puan = childSnap.child("puan").val();
const serverTime = childSnap.child("serverTime").val();
users.push(new Person(id,puan,serverTime));
});
users.sort((a,b) => parseFloat(a.serverTime) - parseFloat(b.serverTime));
for (let i = 0; i < users.length; i++) {
let group = [];
const grupSayi = 3;
if (i < grupSayi) {
group = users.slice(0,grupSayi);
} else {
group = users.slice(i + 1 - grupSayi,i + 1);
}
group.sort((a,b) => parseFloat(b.puan) - parseFloat(a.puan));
const index = (element) => element.id === users[i].id;
const sira = (group.findindex(index) + 1);
// const increment = database.ServerValue.increment(kupaAdet(sira));
const kupa = {
puan: database.ServerValue.increment(1),/// ??? ERROR IS THERE ???
};
updatesLig[users[i].id + "/"] = kupa;
console.log("user id " + users[i].id + " kupa - " + kupaAdet(sira) + " sira - " + sira);
for (let g = 0; g < group.length; g++) {
console.log("grup : " + (i + 1) + " - " + group[g].id + " - " + group[g].puan + " - " + group[g].serverTime);
}
}
await refLig.update(updatesLig);
return null;
}).catch((error) => {
console.log(error);
});
}
错误截图:
解决方法
看起来你的 database
是 firebase.database()
的一个实例(注意里面的括号)。 ServerValue
属性是在 firebase.database
上定义的,没有括号,这就解释了为什么找不到 increment
。
您需要使用 admin.database.ServerValue.increment(1)
或 firebase.database.ServerValue.increment(1)
,具体取决于您导入 Admin SDK 的方式。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。