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存储中的文件的json内容
Firebase 实时数据库获取函数返回未定义(较新的 firebase 版本,2021) - 使用 React Native