【发布时间】:2020-05-15 16:59:45
【问题描述】:
我正在尝试通过函数从 Firestore 文件的更新中获取一些信息。
我已经设法让 firestore 触发器正确(更新我的 firestore 文件时功能正在工作),但我无法获取通过函数更新的信息。
这是我的函数代码:
import * as functions from "firebase-functions";
//const functions = require('firebase-functions');
const admin = require("firebase-admin");
admin.initializeApp();
exports.enviaMensagem = functions.firestore
.document("Events/{eventID}/Listas/Convidados")
.onWrite(async (change, context) => {
const eventID = context.params.eventID;
console.log("eventID: ", eventID);
if (change.after.data()) {
const data = change.after.data();
if ( data!.reference) {
console.log(data!.reference);
} else {
console.log('not possible to get the user reference');
}
console.log(data!.toString());
console.log(change.after.toString());
}
});
[已解决]我的问题编号 1 是当我尝试 console.log(data!.toString()); 时,控制台的返回变为 [object Object] 而不是实际数据。
[已解决]我的问题编号 2 是我无法获取已插入到 firestore 文件中的信息。
这是插入到 firestore 文件中的信息的结构: updated data structure
结构是: {[reference key]:{apelido:'abc', estado:'def', referencia:[reference key]}}
我需要检索引用键,它是该地图的主要标签,也是结构内部的标签“referencia”
如何检索此引用密钥以便使用它?
感谢您的帮助!
更新 这是我记录的对象的打印:Logged object 我需要检索出现在日志“bJaETeYN4hYJqRN9PnmWfrhs7eC2”顶部和底部的这个长字符串 这个字符串对于每个用户都是不同的,我需要哪个用户正在执行操作的信息。
更新 2
我已经设法通过函数Object.keys(data!)[0] 得到我需要的东西
我将解决方案留在这里,以便其他人可以使用它!
【问题讨论】:
标签: typescript firebase google-cloud-firestore google-cloud-functions