我无法通过这种简单的方法从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一起使用。
感谢您的帮助!
答案 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);
});
}