【问题标题】:Triggering http request in Cloud Functions for Firebase to pull data from Firebase DB在 Cloud Functions for Firebase 中触发 http 请求以从 Firebase DB 中提取数据
【发布时间】:2017-09-08 20:09:02
【问题描述】:
所以我的 Firebase 数据库中有这些简单的数据
Snapshot1
我应该如何在 Cloud Functions 中编写函数,所以如果我打开像 https://example.com/292322 这样的链接,它将只返回文本“7777777777”
到目前为止,我有类似的东西,但我确定它已经关闭,因为我是菜鸟。谢谢!
const functions = require('firebase-functions');
exports.urlPubkey = functions.https.onRequest((req, res) => {
database.ref('pubkeys').orderByChild('url').equalTo(req).once('value', snapshot => {
const match = snapshot.val();
if (match) {
res.status(200).send("PUBKEY GOES HERE:)");
}
});
}
【问题讨论】:
标签:
firebase
firebase-realtime-database
google-cloud-functions
【解决方案1】:
借助 Firebase 云功能,您可以使用 snapshot.val().variableName 访问您的数据,因此在本例中为 const key = snapshot.val().pubkey
我会更改您的代码,使其看起来像这样:
const functions = require('firebase-functions');
exports.urlPubkey = functions.https.onRequest((req, res) => {
database.ref('pubkeys').orderByChild('url').equalTo(req).once('value', snapshot => {
const match = snapshot.val();
if (match) {
res.status(200).send(match.pubkey)");
}
});
}
或者这个:
exports.urlPubkey = functions.https.onRequest((req, res) => {
database.ref('pubkeys').orderByChild('url').equalTo(req).once('value', snapshot =>
if (snapshot.exists()) {
res.status(200).send(snapshot.val().pubkey)");
}
});
甚至这个:
exports.urlPubkey = functions.https.onRequest((req, res) => {
database.ref('pubkeys').orderByChild('url').equalTo(req).once('value', snapshot =>
if (snapshot..hasChild(pubkey)) {
res.status(200).send(snapshot.val().pubkey)");
}
});