Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase foreach循环在react native中不与google cloud firestore一起工作_Firebase_React Native_Firebase Realtime Database_Google Cloud Firestore_Expo - Fatal编程技术网

Firebase foreach循环在react native中不与google cloud firestore一起工作

Firebase 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

我正试图在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.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)