【问题标题】:How to read a value from Firebase realtime database with a Google cloud functions?如何使用 Google 云功能从 Firebase 实时数据库中读取值?
【发布时间】:2018-10-30 14:01:52
【问题描述】:

我开始使用 firebase 云功能,但我无法从我的数据库树中读取条目 "Hello"

我正在尝试从我的树中读取 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
 });

谁能告诉我我做错了什么?

【问题讨论】:

  • 只是想看看你的数据库是什么样子的,你可以试试这个并将它的输出添加到你的问题中吗? return admin.database().ref().once('value', (snap) => { console.log(JSON.stringify(snap.val())); });
  • @FrankvanPuffelen 谢谢,我试试你说的,我发现 HANDLE 的末尾有一个空格,我无法从控制台看到它。你们应该考虑添加一种从控制台修改节点的方法,因为现在一旦创建了节点,就无法修改它的名称。再次感谢!
  • 很高兴听到您找到了 Mathias 问题的原因!重命名节点从来没有被要求太多,但它对file a feature request 没有任何伤害。

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


【解决方案1】:

我在这行和弗兰克的帮助下发现了:

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

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

【讨论】:

    【解决方案2】:

    请试试这个

    const userName = admin.database().ref('/HANDLE/suj1/part1').once('value',function(snapshot) {
    
    const hello = snapshot.val();
    console.log(hello);
    
    });
    

    【讨论】:

      【解决方案3】:

      试试这个:

      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"
      });
      

      【讨论】:

      • 我收到此错误 TypeError: Cannot read property 'part1' of null
      • 使用您的 firebase 数据库节点的截图编辑您的问题。如果正如您在问题中所说的那样,它应该可以工作:S
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-30
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多