Firebase 函数返回 Json

Posted

技术标签:

【中文标题】Firebase 函数返回 Json【英文标题】:Firebase function to return 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 的语法是什么? );

【问题讨论】:

【参考方案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 对象将响应发送到浏览器。 是的,你当然是对的。感谢更新。我已删除该评论,以免将来阅读的任何人感到困惑。

以上是关于Firebase 函数返回 Json的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 从函数返回输出

Firebase 函数不返回数据

Firebase 在函数返回后检索数据

如何使用firebase函数返回保存在firebase存储中的文件的json内容

Firebase 云函数返回 304 错误然后重启

Firebase 实时数据库获取函数返回未定义(较新的 firebase 版本,2021) - 使用 React Native