Javascript 如何使用云函数在Firebase中获取实时数据库?
我已经创建了Firebase项目并向实时数据库添加了一些数据?我还使用控制台创建了云函数。这是我下面的代码Javascript 如何使用云函数在Firebase中获取实时数据库?,javascript,node.js,firebase,firebase-realtime-database,google-cloud-functions,Javascript,Node.js,Firebase,Firebase Realtime Database,Google Cloud Functions,我已经创建了Firebase项目并向实时数据库添加了一些数据?我还使用控制台创建了云函数。这是我下面的代码 const functions = require('firebase-functions'); const admin = require('firebase-admin'); admin.initializeApp(); exports.addMessage = functions.https.onRequest(async (req, res) => { const s
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
exports.addMessage = functions.https.onRequest(async (req, res) => {
const snapshott = await admin.database().ref('/messages').push({"original":"ZXz"});
res.send("assasin")
});
exports.getMessage = functions.https.onRequest(async (req, res) => {
const snapshott = await admin.database().ref('/messages').get();
res.send(snapshott)
});
addMessage
函数工作正常,但是getMessage
函数给出了一个错误
这是以下错误
TypeError:admin.database(…).ref(…).get不是函数
在exports.addMessage.functions.https.onRequest(/srv/index.js:15:60)
在
在进程中。_tickDomainCallback(internal/process/next_tick.js:229:7)
那么,如何使用云函数在Firebase中获取实时数据库呢?正如您将在中看到的,对于实时数据库参考
,没有get()
方法。另一方面,Firebase提供的另一个NoSQL数据库Firestore有一个方法。您可能混淆了这两种数据库服务:-)
要读取实时数据库中的节点,需要使用该方法
因此,在您的情况下,您将执行以下操作:
exports.getMessage = functions.https.onRequest(async (req, res) => {
const snapshott = await admin.database().ref('/messages').once('value');
res.send(snapshott);
});
另外要注意两件事:
“此方法不适用于云函数”->“此方法在云函数中不常用”
exports.getMessage = functions.https.onRequest(async (req, res) => {
const snapshott = await admin.database().ref('/messages').once('value');
res.send(snapshott);
});