无法从Firebase提取数据

时间:2020-10-03 17:46:58

标签: javascript firebase react-native google-cloud-firestore expo

我无法通过这种简单的方法从Firebase数据库中获取数据:

getLists(callback) {
    let ref = firebase.firestore().collection("users").doc(this.userId).collection("lists");
    this.unsubscribe = ref.onSnapshot(snapshot => {
        let lists = [];
        console.log('1');
        snapshot.forEach(doc => {
            console.log('2');
            console.log("This message doesn't appear in console...");
        });
        console.log('3');
        callback(lists);
    });
}

如您所见,该代码未贯穿“ snapshot.forEach()”部分。 为什么?我在Internet上看到很多使用此方法的示例。控制台中仅显示“ 1”和“ 2” ...

我正在跟踪该视频教程,该视频教程做了完全相同的操作,但对他有用(https://www.youtube.com/watch?v=5NCnO5a3v0c&t=388s)。

我正在将Expo CLI与我的Android手机和Firebase v7.9.0一起使用。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我终于创建了一个比教程视频作者创建的集合更简单的集合。它可以使用:

getLists(callback) {
        let ref = firebase.firestore().collection("lists").orderBy("name");
        this.unsubscribe = ref.onSnapshot(snapshot => {
            let lists = [];
            snapshot.forEach(doc => {
                lists.push({ id: doc.id, ...doc.data() });
            });
            callback(lists);
        }, function(error) {
            console.log(error);
        });
}