下面的第二个查询不起作用。它甚至没有执行错误回调的成功。 但是,如果我在不同的文件中分别运行它们,则两者都可以单独工作。
第二个查询没有给出任何反馈,没有错误消息也没有输入成功回调。 我不知道如何调试它。
有人知道怎么解决吗?
downloadAlbums(callback) {
const vueEnv = this;
let db = firebase.firestore();
let albumsRef = db.collection('albums');
albumsRef.orderBy("createdAt", "desc").get()
.then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
vueEnv.items.push(doc);
});
callback(); // This callback refers to async seq
});
},
countPhotos(callback) {
let db = firebase.firestore();
// [UPDATE: ADDING RANDOM WRITE OPERATION, ACCORDING JEFF'S COMMENT]
db.collection("test").add({test:'test'})
.then(function(docRef) { console.log('set') })
.catch(function(error) {
console.log("Error on setting: ", error);
});
// [END OF UPDATE]
for (index in this.items) {
let albumId = this.items[index].id;
console.log("id: " + albumId);
let photosRef = db.collection('albums').doc(albumId).collection('photos');
photosRef.orderBy("createdAt", "desc").get()
// it never calls the callback of then() or catch() function
.then(function(querySnapshot) {
if (querySnapshot.exists) {
console.log("querySnapshot.exists");
} else {
console.log( "Do Not Exist In DB");
};
})
.catch(function(error) {
console.log("Error getting documents: ", error);
});
}
callback();
},
// just for context
mounted: function () {
this.$nextTick(function () {
this.initializeFirebase();
async.seq(this.downloadAlbums, this.countPhotos)(function(err, data) {
console.log('seq concluded');
});
});
}