javascript - Firebase HTTP Cloud Functions - 一次读取数据库

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

我有一个 Firebase HTTPs 函数。该函数需要根据查询参数从 Firebase 数据库中读取一个值,并根据该数据返回一个结果。

Firebase JS SDK 说要使用:

return firebase.database().ref('/users/' + userId).once('value').then(function(snapshot) {
  var username = snapshot.val().username;
  // ...
});

但是,云函数示例有:

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

functions.database.ref('/');

但数据库引用没有方法once,只有onWrite ( https://firebase.google.com/docs/reference/functions/functions.database.RefBuilder )。这显然是针对 DB 写入函数,而不是 HTTP 函数。

在 HTTP 函数中是否有正确的方法从数据库中读取一次?我可以使用普通的 Firebase SDK,还是有更好的方法?

谢谢。

最佳答案

我找到了结合此处有关如何获取参数的答案和 Michael Blight 的答案的解决方案 How to run query from inside of Cloud function?

那里的答案还显示了使用 firebase-admin 的要求。

调用 my-project.firebaseapp.com/event/123/时,以下对我有用。

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

admin.initializeApp(functions.config().firebase);

exports.showEvent = functions.https.onRequest((req, res) => {
    const params = req.url.split("/");
    const eventId = params[2];
    return admin.database().ref('events/' + eventId).once('value', (snapshot) => {
        var event = snapshot.val();
        res.send(`
            <!doctype html>
            <html>
                <head>
                    <title>${event.name}</title>
                </head>
                <body>
                    <h1>Title ${event. name} in ${event.city}</h1>
                </body>
            </html>`
        );
     });
});

关于javascript - Firebase HTTP Cloud Functions - 一次读取数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43913139/

相关文章:

javascript - 为什么我的 Accordion 不能完全关闭?

javascript - 如何从作为 Windows 服务运行的 Nodejs 调用函数

android - Android依赖项 'com.google.firebase:firebase-iid'对于编译(19.0.0)和运行时(20.0.1)类路径具有不同的版本

ios - TableView 不显示来自 firebase 的数据,但在 "po snapshot"调试控制台下显示获取数据

Javascript 模块继承

javascript - 出现页脚时重新定位滚动到顶部按钮

android - Firebase Android 检索特定的 child

Firebase 数据上的 Android Searchview

java - Firebase 查询方法不起作用

java - 如何获取与 firebase 数据库中的特定值配对的随 secret 钥并删除该值?