簡體   English   中英

React Native和Firebase數據庫沒有映射功能

[英]React native and Firebase database doesnt map function

我在對象解析方面已經工作了很長時間,這個對象來自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())

});

而且我使用了map函數,但收到一條錯誤消息“ map不是函數”

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

});

該錯誤在我看來是正確的。 如果加載/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是火力地堡通過你DataSnapshot.forEach()

因此在代碼中:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM