función de nube de base de fuego obtener documento dentro de devolución de llamada
Con las funciones de Firebase Cloud, si quiero hacer referencia a un documento ('/usuarios/' + ID de usuario) dentro de una devolución de llamada, ¿es así como lo haría? el ID de usuario está dentro de la primera instantánea, por lo que necesitaría llamar a otra llamada asíncrona para obtener el documento de usuario, pero creo que algo está mal con mi sintaxis ya que esto genera un error.
exports.onCommentCreation = functions.firestore.document('/forum/threads/threads/{threadId}/comments/{commentId}')
.onCreate(async(snapshot, context) => {
var commentDataSnap = snapshot;
var userId = commentDataSnap.data().userId;
var userRef = await functions.firestore.document('/users/' + userId).get();
var userEmail = userRef.data().email;
});
Mostrar la mejor respuesta
Publicado : 2 January, 2021 @ 20:04
Vas a tener que proporcionar su información de depuración aquí. No podemos ver cómo está activando esta función, los datos en sus documentos y variables, y el contenido de sus registros. Debe haber suficiente información aquí que cualquiera pueda usar para reproducir el problema como lo ve.
Publicado : 2 January, 2021 @ 20:08
"ya que esto da un error" Edite su pregunta para mostrar el mensaje de error exacto y el seguimiento de la pila que obtiene.
Publicado : 2 January, 2021 @ 20:09
ah gracias me funciono la respuesta
Publicado : 3 January, 2022 @ 06:12
En esta línea var userRef = await functions.firestore.document('/users/' + userId).get();
cambie functions.firestore.document
a admin.firestore().doc
.
Algo como esto:
const functions = require("firebase-functions");
const admin = require("firebase-admin");
const db = admin.firestore();
exports.onCommentCreation = functions.firestore
.document('/forum/threads/threads/{threadId}/comments/{commentId}')
.onCreate(async (snapshot, context) => {
// use const because the values are not changing
const userId = snapshot.data().userId;
const userRef = await db.doc('/users/' + userId).get(); // <-- this line
const userEmail = userRef.data().email;
});
Publicado : 2 January, 2021 @ 20:59