Node.js 如何使用谷歌云功能从Firebase实时数据库读取值?
我开始使用firebase云函数,但在从数据库树中读取条目“Hello”时遇到问题: 我正在尝试从我的树中读取句柄/suj1/part1中的Hello“值。我使用的是firebase cloud函数,当我在“INTENT”内的数据库中使用IOS应用程序创建其他条目时,会触发该函数。这些函数调用得很好,但每次我尝试读取“Hello”值时,它都会在firebase控制台中返回一个空值,我希望它在那里返回“Hello” 以下是我使用的代码:Node.js 如何使用谷歌云功能从Firebase实时数据库读取值?,node.js,firebase,firebase-realtime-database,google-cloud-functions,firebase-admin,Node.js,Firebase,Firebase Realtime Database,Google Cloud Functions,Firebase Admin,我开始使用firebase云函数,但在从数据库树中读取条目“Hello”时遇到问题: 我正在尝试从我的树中读取句柄/suj1/part1中的Hello“值。我使用的是firebase cloud函数,当我在“INTENT”内的数据库中使用IOS应用程序创建其他条目时,会触发该函数。这些函数调用得很好,但每次我尝试读取“Hello”值时,它都会在firebase控制台中返回一个空值,我希望它在那里返回“Hello” 以下是我使用的代码: const functions = require('fi
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
});
有人能说出我做错了什么吗?试试这个:
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"
});
请试试这个
const userName = admin.database().ref('/HANDLE/suj1/part1').once('value',function(snapshot) {
const hello = snapshot.val();
console.log(hello);
});
通过这句话和弗兰克的帮助,我发现:
admin.database().ref().once('value', (snap) => { console.log(JSON.stringify(snap.val())); });
我在路径中的“HANDLE”末尾添加了一个空格,它不会出现在Firebase控制台中。我必须删除该分支并创建另一个分支。我收到以下错误类型错误:无法读取Null的属性“part1”使用firebase数据库节点的快照编辑您的问题。。如果它如您在问题中所说的那样,那么它应该是有效的:要查看您的数据库是什么样子,您可以尝试一下并将其输出添加到您的问题中吗<代码>返回admin.database().ref().once('value',(snap)=>{console.log(JSON.stringify(snap.val());})代码>@FrankvanPuffelen谢谢,我试了一下你说的,我发现手柄末端有一个空格a,我从控制台上看不到。你们应该考虑添加一种从控制台修改节点的方法,因为现在一旦创建了节点,就不能修改它的名称。再次感谢!很高兴听到你找到了问题的原因Mathias!重命名节点的请求从来都不多,但这对用户来说并没有什么坏处。