Firebase foreach循环在react native中不与google cloud firestore一起工作
我正试图在react native with expo中从实时数据库迁移到firestore。为什么foreach循环现在不能工作 RTDBFirebase foreach循环在react native中不与google cloud firestore一起工作,firebase,react-native,firebase-realtime-database,google-cloud-firestore,expo,Firebase,React Native,Firebase Realtime Database,Google Cloud Firestore,Expo,我正试图在react native with expo中从实时数据库迁移到firestore。为什么foreach循环现在不能工作 RTDB firebase.database().ref('messages').child(this.chatID).on('value', snap => { let messages = [] snap.forEach(message => { messages.push(message.va
firebase.database().ref('messages').child(this.chatID).on('value', snap => {
let messages = []
snap.forEach(message => {
messages.push(message.val())
})
this.setState({messages: messages})
})
Firestore
const unsubChat = firebase.firestore().collection('messages').doc(this.chatID).onSnapshot(docSnapshot => {
let messages = []
const myMesgs = docSnapshot.data()
if (docSnapshot.data()){
myMesgs.forEach(message => {
console.log(message)
})
}
})
捕捉和粘虫是相同的对象。我在myMesgs上尝试使用.foreach时遇到一个函数未定义错误。我想将myMesgs中每个对象的值推送到一个数组中
更改此选项:
myMesgs.forEach(message => {
console.log(message)
})
为此:
docSnapshot.forEach(message => {
console.log(message)
})
此处的更多信息:在foreach循环之前添加
console.log(“数据是”,docSnapshot.data())代码>并告诉我输出是什么您检查了答案中的链接了吗?是的,如果没有if子句,尝试它没有帮助。我最终只执行Object.values(myMesgs).forEach(message=>{messages.push(message)