【问题标题】:How to fetch data in json format from realtime-database (Firebase)?如何从实时数据库(Firebase)中获取 json 格式的数据?
【发布时间】:2022-02-13 20:01:03
【问题描述】:

我正在尝试在我的应用程序中创建一个搜索功能,该功能基本上根据用户的查询(如任何产品名称)过滤 json 数据(例如。产品列表)并显示最近的结果。我已经成功实现了这个搜索栏和过滤逻辑,但它正在处理我的 product list 我的应用程序中的本地 json 数据。我想要的是从网络调用(http 调用)中获取 json 数据,然后对其进行过滤。 但是我的实时数据库中有数据,我不知道如何以 json 格式检索它们。我可以设置云函数(节点 js)以将 json 数据返回给客户端,但我不确定云函数中将其连接到实时数据库并返回响应的逻辑应该是什么

我在 Firebase 中的数据

现在如何通过云功能从我的应用中获取这些数据?

【问题讨论】:

    标签: json firebase firebase-realtime-database google-cloud-functions


    【解决方案1】:

    我不确定云函数中的逻辑应该是什么 将其连接到实时数据库并返回响应。 .... 怎么能 我通过云功能从我的应用中获取这些数据?

    我了解您想使用HTTPS Cloud Function 作为 REST API 端点(您写“我想要的是从网络调用(http 调用)中获取 json 数据”)。

    您可以按照以下方式编写云函数:

    const functions = require('firebase-functions');
    const admin = require('firebase-admin');
    admin.initializeApp();
    
    exports.getRTDBData = functions.https.onRequest(async (req, res) => {
      
        const rtdbRootRef = admin.database().ref();
    
        const noticesDataSnapshot = await rtdbRootRef.child('notices').get();
    
        res.status(200).send(noticesDataSnapshot.val());   
    
    });
    

    通过 http 调用调用此 HTTPS 云函数时,您将获得整个 noticesRTDB 节点。如有必要,您可以调整 RTDB 查询,例如通过过滤数据,如 doc 中所述。

    此外,我建议您观看此video,了解有关如何处理 HTTPS 云函数中的错误的更多信息。

    【讨论】:

    • 感谢您的回答,该响应会是 json 数据吗?
    • 是的,您将以 JSON 格式接收它。
    • 好的,我想这就是我的问题的答案。我实际上是通过应用程序直接从 rtdb 获取数据并迭代和创建 json 数据,但非常感谢您的回答。
    • 如果可能的话,你能不能看看这个问题? stackoverflow.com/questions/71093131/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-08
    • 1970-01-01
    • 2019-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多