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