【问题标题】:Firebase function to return JsonFirebase 函数返回 Json
【发布时间】:2018-08-04 14:07:51
【问题描述】:

这是一个简单的要求 - 我如何从 firebase 数据库返回整个 json。

我的函数就是这样[index.js]

const functions = require('firebase-functions');

const admin = require('firebase-admin');
var serviceAccount = require('./xxMyKeyxx.json');

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: 'https://xxmyProjectxx.firebaseio.com'
});


exports.myQuery = functions.https.onRequest((req, res) => {
  // Grab the text parameter.
  const original = req.query.text;


  return admin.database().ref('/myFbDatabase').once.xxx
  I lost it from here. 

返回位于我的 FB 数据库 /myFbDatabase 中的 Json 的语法是什么? });

【问题讨论】:

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


    【解决方案1】:

    订阅 'value' 事件将为您提供整个数据库

    exports.myQuery = functions.https.onRequest((req, res) => {
       // Grab the text parameter.
       const original = req.query.text;
    
       admin
         .database()
         .ref('/myFbDatabase')
         .once('value', 
           snap =>  res.json(snap.val()),
           err => res.json(err)
         )
    })
    

    【讨论】:

    • return 语句不是必需的。 res.json(snap.val()) 是返回 json 文本的部分。但你是对的,我忘了在最后一行加上右括号。固定
    • 不知何故它不返回任何数据。只返回一个 null 。控制台日志也不会抛出任何错误。我验证了,myFbDatabase db 节点非常多,并且填充了数据。指定的规则很好,因为另一个插入数据的 web 挂钩在相同的设置下也可以正常工作。语法有问题吗? exports.myQuery = functions.https.onRequest((req, res) => { admin .database() .ref('/myFbDatabase') .once('value', snapshot => res.json(snapshot.val() ), err => res.json(err) ) });
    • @DonVaughn 您对代码所做的编辑(用res.json 包围整个调用)会导致错误。发送数据已经在数据准备就绪的时候在回调中处理到.once。另外,我不确定您为什么认为需要退货声明。正如您自己所说,这是一个快速函数,因此只需使用 res 对象将响应发送到浏览器。
    • 是的,你当然是对的。感谢更新。我已删除该评论,以免将来阅读的任何人感到困惑。
    猜你喜欢
    • 1970-01-01
    • 2017-08-11
    • 1970-01-01
    • 1970-01-01
    • 2020-06-03
    • 2021-08-17
    • 1970-01-01
    • 2020-12-07
    • 1970-01-01
    相关资源
    最近更新 更多