Я пытаюсь создать приложение для Android. В моей базе данных Firestore есть коллекция Users и коллекция 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
});
});
В этом состоянии эта функция не работает, и я новичок, поэтому буду признателен за любую помощь.
Спасибо заранее
EDIT
После реализации ответов 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