【发布时间】:2019-03-13 21:38:08
【问题描述】:
我正在尝试构建一个 Android 应用程序。在我的 Firestore 数据库中,我有用户集合和计数器集合。在 Counters 集合中,我有 userCounter。我想做的是每当有新用户登录并将其推送到firestore时,userCounter就会增加。
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
exports.addNewUser =
functions.firestore.document('Users/{userID}').onCreate((event) => {
var db = admin.firestore();
var counterRef = db.collection("Counters");
var temp = counterRef.doc("0").data().userCounter++;
counterRef.doc("0").update(
{
userCounter: temp
});
});
在这种状态下,这个功能不起作用,我是新手,所以我很感激任何帮助。 提前谢谢
编辑
在实施 Firebaser 和 Pablo Almécija Rodríguez 的答案后,我的代码如下所示。
const Firestore = require('@google-cloud/firestore');
const firestore = new Firestore({
projectId: process.env.GCP_PROJECT,
});
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
const db = admin.firestore();
exports.addNewUser =
functions.firestore.document('Users/{userId}').onCreate((snapShot) => {
const userCounterRef = db.collection('Counters').doc('Users');
return db.runTransaction(transaction => {
const doc = transaction.get(userCounterRef);
console.log("1");
const count = doc.data();
console.log(`5`);
const updatedCount = count + 1;
console.log(`6`);
return transaction.update(userCounterRef, {counter: updatedCount })
})
});
这是 firebase 控制台日志。问题是
const count = doc.data();
TypeError: doc.data is not a function
【问题讨论】:
标签: firebase google-cloud-firestore google-cloud-functions