React Native使用Firebase

时间:2018-05-17 12:29:03

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

所以我使用的是React Native和firebase,我在firebase中有一个结构如下的JSON树

{"Message"
  {"-LCi0UViBvOn4eh9cqzW":
    {"contents":"hello",
     "timestamp":1526559275118}
  }
}

我正在尝试检索消息的内容并将其存储在对象中,现在只需将该值读取到控制台即可。这是我尝试此操作的代码:

const firebaseApp = firebase.initializeApp(firebaseConfig);
let db = firebaseApp.database();
let ref = db.ref("/message");

尝试阅读:

 componentDidMount() {
     ref.on("value", function(snapshot) {
      var messageText = JSON.stringify(snapshot.val());
      console.log(messageText);
      var parsedMessage = JSON.parse(messageText);
      console.log(parsedMessage.contents);
     });
  }

第一个console.log给了我以下结果:

{"-LCi0UViBvOn4eh9cqzW":{"contents":"hello","timestamp":1526559275118}}

但是下一个我尝试从解析对象中读取特定数据的console.log总是输出undefined。

我做错了什么,不允许我从我的JSON树中检索特定数据?

1 个答案:

答案 0 :(得分:1)

当您执行第二个JSON.parse然后console.log时,parsedMessage.contents实际上嵌套在键"-LCi0UViBvOn4eh9cqzW"中,因此您应该执行console.log(parsedMessage["-LCi0UViBvOn4eh9cqzW"].contents),因为内容键在值内根元素。