【问题标题】:retrieve key names from firebase react-native从 firebase react-native 检索键名
【发布时间】:2021-01-24 07:36:06
【问题描述】:

我在 Firebase 和检索父键名称方面遇到了一点问题。就像在这个例子中一样,我想获取键的名称,而不是它们的值:

请在我的数据库中看看它现在的样子,它与 JS 沙箱中的完全一样:

当我尝试在我的 react-native 项目中实现这一点时,这部分基本上是使用纯 JS,它看起来像这样:

const sendletter = () => {
        console.log("letter send");
        firebase.database().
        refFromURL("https://SOMEDATABASE.firebaseio.com/numers").
        once("value").then(snapshot => {
            for(key in snapshot){
                console.log(key)
            }
        })
    };

我现在面临的问题是 IDE 中控制台的结果:

空信发送node_ref_index_val exportVal toJSON 存在子 hasChild getPriority forEach hasChildren key numChildren getRef ref

我试图为您提供尽可能多的图片,以便问题变得非常清楚,也是我想要归档的目标,即获取键名本身,而不是键链接到的值。任何帮助都会得到帮助!

【问题讨论】:

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


    【解决方案1】:

    您想使用 snapshot.val() 而不仅仅是 DataSnapshot 对象

    for(key in snapshot.val()){
                    console.log(key);
                }
    

    当您仅循环通过 snapshot 变量时,您正在查看从 firebase 返回的 DataSnapshot 中的所有键,而不是您的实际数据。如果您查看 Firebase 文档,您将看到 DataSnapshot 对象代表什么以及如何从返回的 DataSnapshot 对象中实际从数据库中获取数据:https://firebase.google.com/docs/reference/node/firebase.database.DataSnapshot

    如果你看得足够近,你会发现这个 DataSnapshot 对象包含的所有方法和值实际上就是你的控制台中一直打印的内容

    【讨论】:

    • 成功了,谢谢!您能否简要解释一下为什么在这种情况下 snapshot.val() 是正确答案?
    • 好了,我加了解释
    猜你喜欢
    • 2020-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-26
    • 1970-01-01
    • 2019-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多