firebase 云函数 ServerValue 增量不起作用

firebase cloud function ServerValue increment not working

我有一个 firebase 功能。我想在这里增加 ServerValue。但它不起作用,它会出错。我哪里做错了? 我在下面附上了控制台屏幕截图。 (注意:我不太了解java脚本,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);
      });
    
    }

错误截图:

看起来您的 databasefirebase.database() 的一个实例(请注意其中的括号)。 ServerValue 属性 是在 firebase.database 上定义的,没有括号,所以这解释了为什么找不到 increment

您需要使用 admin.database.ServerValue.increment(1)firebase.database.ServerValue.increment(1),具体取决于您导入 Admin SDK 的方式。