我有一个firebasecloud函数,它应该在创建新文档时增加字段的值。该函数执行成功,正如我在firebase日志中看到的那样,但它不会增加字段的值。
exports.onFileAdded = functions.firestore.document("files/{id}").onCreate(async (change, context) => {
const file = change.data();
const hub = await getByCollectionAndId('hubs', file.hubId);
Firebase.firestore().collection('teams').doc(hub.teamId).set({tileCount: Firebase.database.ServerValue.increment(1)}, {merge: true});
});
由于没有错误,并且函数执行成功,我做错了什么?
问题是:
Firebase.database.ServerValue.increment(1)
您在实时数据库中使用运算符来增加值,但在Cloud Firestore中使用它。虽然两个数据库都是Firebase的一部分,但它们是完全独立的,其中一个数据库的API不适用于另一个数据库。
要解决此问题,请使用Firestore:的increment
运算符
firebase.firestore.FieldValue.increment(1)
另请参阅我的答案:如何在Cloud Firestore 中增加现有的数字字段