如何使用Google云功能从Firebase实时数据库中读取值?

时间:2018-05-20 22:24:41

标签: node.js firebase firebase-realtime-database google-cloud-functions firebase-admin

我开始使用firebase云功能,而且我无法从数据库树中读取“Hello”条目:

(learned from here)

我正在尝试从我的树中读取 HANDLE / suj1 / part1 中的“Hello”值。我正在使用firebase云功能,当我在“INTENT”内的数据库中创建带有IOS应用程序的其他条目时触发该功能。这些函数调用得很好但每次我尝试读取“Hello”值时,它在我的firebase控制台中返回一个空值,我希望它返回“Hello”。

以下是我使用的代码:

const functions = require('firebase-functions')
const admin = require('firebase-admin')
admin.initializeApp()

exports.match = functions.database.ref('INTENT/{userid}').onCreate(snapshot => {

const user = snapshot.key


return admin.database().ref('HANDLE/suj1/part1').once('value', (snap) => {
    const hello = snap.val()
    console.log(hello) // Null
 });

有人能说出我做错了什么吗?

3 个答案:

答案 0 :(得分:1)

我发现这条线和弗兰克的帮助:

admin.database().ref().once('value', (snap) => { console.log(JSON.stringify(snap.val())); });

我在路径的“HANDLE”末尾添加了一个空格,该空格未显示在Firebase控制台中。我不得不删除分支并创建另一个分支。

答案 1 :(得分:0)

试试这个:

const functions = require('firebase-functions')
const admin = require('firebase-admin')
admin.initializeApp()

exports.match = 
functions.database.ref('OTHERLOCATION/{userid}').onCreate((snapshot) => {
const user = snapshot.key

return admin.database().ref().child('HANDLE/suj1').once('value', function(snap) => {
const hello = snap.val().part1
console.log(hello) // "Hello"
});

答案 2 :(得分:0)

请试试这个

const userName = admin.database().ref('/HANDLE/suj1/part1').once('value',function(snapshot) {

const hello = snapshot.val();
console.log(hello);

});