Ich will Cloud-Funktion für Firestor schreiben, die task.elapsedCount verringern wird und user.points + = 3 in zwei parallelen Threads machen:
Cloud-Funktionen: Firestor lösen
exports.taskDoneFunc = functions.firestore
.document('/tasks/{taskId}')
.onUpdate(event => {
const taskRef = event.data.ref;
const root = taskRef.root;
return taskRef.get()
.then(taskSnap => {
let task = taskSnap.data();
task.elapsedCount -= 1;
taskRef.set(task, {merge: true})
return root.document('/users/${task.taskOwner_uid}').get()
}).then(userSnap => {
let user = userSnap.data();
user.points += 3;
return userSnap.ref.set(user)
})
});
erste Versprechen funktionieren gut und ich sehe, Änderungen in Aufgabe Firestore "Aufgabe" Dokument, aber zweite sagt "Kann nicht lesen 'Dokument' von undefined".
Ich habe keine sauberen Beispiele für Cloud-Funktionen für Firestore-Datenbank-Trigger gefunden, das ist verrückt Beta? :(
Ich habe gerade herausgefunden, wie Sie mit Funktionen in Firestore arbeiten: nur admin.firestore(). Doc ('/ users/$ {uid}') .get() - wie Anrufe. – android51130