javascript - 如何从 Firebase 数据库检索单个 JSON 值?

标签 javascript node.js firebase firebase-realtime-database google-cloud-functions

假设我有一个 Firebase Node ,即 dbref = firebase.ref('/Transfer_Request/{pushID]/')。

并且客户端写入两个值; from_ID 和 to_ID 到 dbref。如何从 Firebase Cloud 函数获取 from_ID 和 to_ID 的单独值?

My database

我的代码:

exports.TransferTicket = functions.database.ref('/Transfer_Request/{pushID}').onWrite((event) => {

  const original = event.data.val();
  const from_ID = original.from_ID;
  const to_email_ID = original.to_ID;

  //search for to_email ID
  return admin.database().set("A transfer request was just made");

});

我收到两个错误:

1)

TypeError: admin.database(...).set is not a function at exports.TransferTicket.functions.database.ref.onWrite (/user_code/index.js:41:25) at Object. (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:59:27) at next (native) at /user_code/node_modules/firebase-functions/lib/cloud-functions.js:28:71 at __awaiter (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:24:12) at cloudFunction (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:53:36) at /var/tmp/worker/worker.js:716:24 at process._tickDomainCallback (internal/process/next_tick.js:135:7)

2)

TypeError: Cannot read property 'from' of null at exports.TransferTicket.functions.database.ref.onWrite (/user_code/index.js:35:25) at Object. (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:59:27) at next (native) at /user_code/node_modules/firebase-functions/lib/cloud-functions.js:28:71 at __awaiter (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:24:12) at cloudFunction (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:53:36) at /var/tmp/worker/worker.js:716:24 at process._tickDomainCallback (internal/process/next_tick.js:135:7)

最佳答案

第一个问题来自这样一个事实:在执行以下操作时,您会错过 Firebase 引用

return admin.database().set("A transfer request was just made");

你应该这样做:

admin.database().ref('...the path where you want to write...').set("A transfer request was just made");

有关更多详细信息,请参阅 Reference 的文档和 Database .

第二个问题来自于新发布的 Firebase SDK for Cloud Functions 1.0.0 版本以来,语法发生了变化。请参阅此文档 item

您应该按如下方式修改代码:

exports.TransferTicket = functions.database.ref('/Transfer_Request/{pushID}').onWrite((change, context) => {

    const original = change.after.val();

    const from_ID = original.from_ID;
    console.log(from_ID);
    const to_email_ID = original.to_ID;
    console.log(to_email_ID);

    return admin.database().ref('...path...').set("A transfer request was just made")
    .catch(error => {
        console.log(error);
        //...
    });

});

关于javascript - 如何从 Firebase 数据库检索单个 JSON 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50791005/

相关文章:

Angular Firestore subscribe() 触发两次

javascript - 我如何使用 google home 设备测试我未发布的助手应用程序

mysql - Mongoose/Mongodb 迁移到 MySQL

javascript - 有没有办法使用 jquery 将替代文本添加到 img 标签?

node.js - 使用 Google 授权构建和保护 Angular 和 Node Rest API

javascript - LoopbackJS 3.x,如何启用删除所有匹配实例

ios - 如何在不点击通知的情况下收到 FCM 通知时打开(启动)应用程序

firebase - 如何解决 : Error: Failed to list Firebase projects. 请参阅 firebase-debug.log 了解更多信息

javascript - jQuery 类选择器和 click()

asp.net mvc RC1 中的 JavaScriptResult