第二个查询无法在Firebase Firestore中运行

时间:2017-10-23 22:01:02

标签: javascript firebase google-cloud-firestore

下面的第二个查询不起作用。它甚至没有执行错误回调的成功。 但是,如果我在不同的文件中分别运行它们,则两者都可以单独工作。

第二个查询没有给出任何反馈,没有错误消息也没有输入成功回调。 我不知道如何调试它。

有人知道怎么解决吗?

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');
        });
    });
}

0 个答案:

没有答案