【问题标题】:Firebase Functions, admin.database().ref(...).get() is not a functionFirebase 函数,admin.database().ref(...).get() 不是函数
【发布时间】:2018-09-28 19:33:46
【问题描述】:

我正在开发一个 Android 应用程序,并使用 firebase 作为它的后端。我试图让一个依赖于监听数据库变化的通知系统工作。虽然有问题,但我收到以下错误。想知道是否有人可以提供帮助,可以提供任何额外的代码。

Firebase 函数

'use-strict'

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

exports.sendNotification = functions.database.ref("Notifications/{user_id}/{notification_id}").onWrite((data, context)=>{

    const user_id = context.params.user_id;
    const notification_id = context.params.notification_id;

    console.log("User ID : " + user_id + " | Notification ID : " + notification_id);

    return admin.database().ref("Notifications/" + user_id + "/" + notification_id).get().then(queryResult => {

      const job_id = queryResult.data().Job;

      const from_data = admin.database().ref("Jobs/" + job_id).get();
      const to_data = admin.database().ref("Users/" + user_id).get();

      return Promise.all([from_data, to_data]).then(result => {

        const job_name = result[0].data().advertName;
        const to_name = result[1].data().fullName;

        console.log("JOB : " + job_name + " | TO : " + to_name);

        return undefined;
      });


    });
});

函数错误

【问题讨论】:

    标签: javascript node.js firebase google-cloud-firestore google-cloud-functions


    【解决方案1】:

    错误非常明确:Firebase 实时数据库中没有 get 函数。

    您似乎正在尝试使用 Cloud Firestore,它位于 admin.firestore() 下。所以像:

     const from_data = admin.firestore().doc("Jobs/" + job_id).get();
     const to_data = admin.firestore().doc("Users/" + user_id).get();
    

    有关完整示例,请参阅Getting started 和其他 Firestore 文档中的 NODE.JS 选项卡。

    【讨论】:

      【解决方案2】:

      您似乎在混淆实时数据库和 Firestore API。 Firebase 实时数据库 API 不提供 get() 方法来获取数据。为此,您在 Reference 对象上使用 once()

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-12-26
        • 1970-01-01
        • 2015-12-29
        • 1970-01-01
        • 2021-12-30
        • 2020-12-11
        • 2020-04-06
        相关资源
        最近更新 更多