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();
// ...
添加回答
舉報