【问题标题】:React native and Firebase database doesnt map functionReact Native 和 Firebase 数据库没有映射功能
【发布时间】:2018-08-26 00:28:50
【问题描述】:

我在对象解析方面工作了很长时间,这个对象来自 Firebase 但我无法解析,请帮助我该怎么做?

{
   "user" : {
       "qweqwe1231" : {
           "-LKmfJ8X9FtL75-03yBf" : {
           "gonderilenkisi":"asdasdad",
           "gonderimzamani":"3123",
           "metin":"dqweqweqe",
           "okundumu":0
       },
       "-LKmgiBm8EB7LFDeOGbH" : {
           "gonderilenkisi":"asdasdad",
           "gonderimzamani":"3123",
           "metin":"dqweqweqe",
           "okundumu":0
       }
   }
}

我得到这样的数据

firebase.database().ref().child('user').child('qweqwe1231').on('value', 
     (data)=>{
         console.log(data.val())

});

我使用映射函数,但收到错误消息“映射不是函数”

firebase.database().ref().child('user').child('qweqwe1231').on('value', 
     (data)=>{
         data.val().map((item)=>{ console.log(item.gonderilenkisi)})

});

【问题讨论】:

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


    【解决方案1】:

    这个错误在我看来是正确的。如果你加载 /user/qweqwe1231 你会得到这个 JSON:

    {
      "-LKmfJ8X9FtL75-03yBf" : {
        "gonderilenkisi" : "asdasdad",
        "gonderimzamani" : "3123",
        "metin" : "dqweqweqe",
        "okundumu" : 0
      }, 
      "-LKmgiBm8EB7LFDeOGbH" : {
        "gonderilenkisi" : "asdasdad",
        "gonderimzamani" : "3123",
        "metin" : "dqweqweqe",
        "okundumu" : 0
      }
    }
    

    这不是一个数组,所以它没有map() 方法。

    您可能希望遍历对象的子对象。由于没有map() 方法,您必须:

    1. Object.keys()提取密钥。
    2. 使用Array.forEach()Array.forEach() 循环遍历键。
    3. 查找每个键的子对象并在其上执行您的操作。

    所以在代码中:

    firebase.database().ref().child('user').child('qweqwe1231').on('value', (snapshot)=>{
        let data = snapshot.val();
        let keys = Object.keys(data);
        keys.forEach((key) => { console.log(data[key]); });
    });
    

    或者,您可以使用 DataSnapshot.forEach() 遍历 Firebase 传递给您的 DataSnapshot 的子代。

    所以在代码中:

    firebase.database().ref().child('user').child('qweqwe1231')
    .on('value',  (snapshot)=>{
        snapshot.forEach((item) => { console.log(item.val().gonderilenkisi); })
    });    
    

    【讨论】:

      猜你喜欢
      • 2020-03-26
      • 2021-07-20
      • 1970-01-01
      • 2017-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-18
      • 2015-02-20
      相关资源
      最近更新 更多