firebase - 在 Firebase Cloud Function 上合并两个数组
问题描述
我有这两个节点,我需要在一个 http 调用中获得它们。我试图通过使用 async/await 来获取两个节点,然后使用 concat 或 forEach 组合它们来实现这一点。但似乎即使我在等待回复,在函数内部它们仍然是承诺,而不是数据本身。这是我的基本示例:
exports.searchVisit = functions.https.onRequest(async (req, res) => {
const today = new Date(Date.now());
let todayVisits = await admin.database().ref('/visits/').once('value');
let frequentVisits = await admin.database().ref('/frequent_visits/').once('value');
console.log(todayVisits); // Prints an object (I guess it is a promise)
res.status(200).send(todayVisits); // Returns correctly the data on visits collection
});
我怎样才能实现返回 todayVisits 和frequentVisits 的组合?提前致谢。
解决方案
在您的代码中,todayVisits
是一个DataSnapshot类型的对象。这不是一个承诺。记录该 DataSnapshot 对象不太可能有用。如果您想查看该快照中的原始数据,请对其调用val()以获取一个 JavaScript 对象,其中包含该快照中的整个数据集。这也是您可能想要发送给客户端的内容(不是 DataSnapshot 的全部内容)。
推荐阅读
- reactjs - 如何将 API 返回值分配给状态?
- html - html5进度条没有动画
- github - Rundeck 在 Github 上获取代码(或触发更改)并为远程节点执行 Job
- json - Swift Realm 导入 Json 数组数据
- c++ - 通过引用传递数学
- java - 从 JPA 实体 throwingStackOverflowError 异常创建 Gson 对象
- javascript - 有没有办法使用哈希/校验和来确保已发布的 npm 包的完整性?
- python - Numpy:在每行中的某个索引之后替换一行的剩余列
- c++ - 向 Microsoft 提供有关 MFC 的反馈
- javascript - Javascript 验证函数值