【问题标题】:How to access value from Firebase Realtime Database in React-native? (android)如何在 React-native 中访问 Firebase 实时数据库中的值? (安卓)
【发布时间】:2020-08-16 00:52:16
【问题描述】:

左边是我的数据库架构,右边是我的 react-native 代码。

我按照 this 文档开始使用 Realtime Database for Android。

我正在尝试从键“类别”中获取值“课程”。 我尝试过的所有命令都不起作用。如何获得课程价值? 我尝试了 test.parent,但我在数据库中得到了正确的位置,但我想要这些值。

谢谢!

【问题讨论】:

    标签: android react-native firebase-realtime-database


    【解决方案1】:

    文档是你的朋友!

    您的问题的答案在您附加的文档中! 如果你向下滚动一点,会有一个部分One-time read

    要读取一次值,请在引用上调用 once 方法:

    import database from '@react-native-firebase/database';
    
    database()
      .ref('/users/123')
      .once('value')
      .then(snapshot => {
        console.log('User data: ', snapshot.val());
      });
    

    所以只需将参考路径 '/users/123' 替换为您的路径 'Lesson 1/1 Introduction/Category'

    您还可以实时收听文档中的更改。查看Real-Time Changes

    import database from '@react-native-firebase/database';
    
    database()
      .ref('/users/123')
      .on('value', snapshot => {
        console.log('User data: ', snapshot.val());
      });
    

    【讨论】:

    • 有没有不涉及快照方法的更简单的方法?
    • 我想尝试将值“1 Introduction”和所有其他可能处于同一级别的子项保存到一个数组中
    • “更简单的方法”是什么意思?由于您需要1 Introduction 级别上的所有对象,因此您应该将引用路径设置为Level 1。如果您只想从 DB 中读取 1 次,则使用第一种方法,当 promise 解析时,将其设置为任何状态变量
    • 谢谢我能够得到我需要的东西,如下所示:` const reference = database() .ref() .once('value') .then(snapshot => { //get Levels from db let values = []; snapshot.forEach((child) => { values.push(child.key); }) console.log(values);`
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-04
    相关资源
    最近更新 更多