亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Firebase 云解析錯誤:意外的令牌管理

Firebase 云解析錯誤:意外的令牌管理

HUX布斯 2023-03-03 10:51:12
所以在創建“點”類時,我找到了用戶并用 100(num 值)更新了它的點,但我一直在意外地收到 referuserRef 這是我的代碼const functions = require('firebase-functions');      const admin = require('firebase-admin');    admin.initializeApp();exports.pointsCreated = functions.firestore        .document('points/{pointsid}')        .onCreate((snap, context) => {                        const newValue = snap.data();            if (newValue['type'] !== null) {                if (newValue['type'] === 'refer') {                    const referuserRef = admin.firestore().collection('users').doc(newValue['user']); //this is where i get the error                    console.log("referuserRef");                    console.log(referuserRef);                    const referuserDoc = await referuserRef.get()                    if (referuserDoc.exists) {                        referuserRef.set({ points: Number(referuserDoc.data()['points']) + 100 }, { merge: true });                    }                }            }        });這是 package.json 和 .eslintrc.json 有“ecmaVersion”:7(我也試過 8,但每次我嘗試時它都給了我同樣的錯誤{  "name": "functions",  "description": "Cloud Functions for Firebase",  "scripts": {    "lint": "eslint .",    "serve": "firebase emulators:start --only functions",    "shell": "firebase functions:shell",    "start": "npm run shell",    "deploy": "firebase deploy --only functions",    "logs": "firebase functions:log"  },  "engines": {    "node": "10"  },  "main": "index.js",  "dependencies": {    "firebase-admin": "^8.10.0",    "firebase-functions": "^3.6.1"  },  "devDependencies": {    "eslint": "^5.12.0",    "eslint-plugin-promise": "^4.0.1",    "firebase-functions-test": "^0.2.0"  },  "private": true}
查看完整描述

1 回答

?
蝴蝶不菲

TA貢獻1810條經驗 獲得超4個贊

根據您的評論更新

您需要正確管理 Cloud Function 的生命周期,方法是等待異步 Firebase 方法調用完成,然后再向 Cloud Function 平臺指示它可以清理您的函數。有關詳細信息,請參閱此文檔。


因此,以下應該可以解決問題:


const functions = require('firebase-functions');

const admin = require('firebase-admin');

const FieldValue = require('firebase-admin').firestore.FieldValue;

admin.initializeApp();


exports.pointsCreated = functions.firestore

    .document('points/{pointsid}')

    .onCreate(async (snap, context) => {


        try {

            const newValue = snap.data();

            if (newValue['type'] !== null) {

                if (newValue['type'] === 'refer') {

                    const referuserRef = admin.firestore().collection('users').doc(newValue['user']);

                    const referuserDoc = await referuserRef.get();

                    if (referuserDoc.exists) {

                        await referuserRef.set({ points: FieldValue.increment(100) }, { merge: true });

                        return null;

                    } else {

                        return null;

                    }

                } else {

                    return null;

                }

            } else {

                return null;

            }

        } catch (error) {

            // ...

            return null;

        }


    });

請注意使用 來FieldValue增加字段的值points。


舊答案:


您似乎沒有加載 Cloud Functions SDK。你應該這樣做:


const functions = require('firebase-functions');


const admin = require('firebase-admin');

admin.initializeApp();


// ...


查看完整回答
反對 回復 2023-03-03
  • 1 回答
  • 0 關注
  • 134 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號