如果我将数据添加到Firestore-NodeJS

时间:2018-07-17 13:02:32

标签: node.js firebase google-cloud-firestore reverse-geocoding

我在Firebase托管的服务器端上使用reverseGeocoding。

如果我想在收到reverseGeocode的响应后立即将数据添加到Firestore,则它不再起作用。代码将被忽略并且不会引发错误。

googleMapsClient.reverseGeocode({
    latlng: [-33.8571965, 151.2151398],
})
.asPromise()
.then((response) => {
    if (response.json.status != "OK") {
        console.log('Geocode error');
    }else {
        console.log("Geocode OK");

        var db = admin.firestore();
        var docRef = db.collection('medias').doc('Sydney Opera House');

        console.log(docRef);

        docRef.set({
            test: "value stored"
        })
        .catch((e) => {
            console.log(e);
        });
    }
})
.catch((err) => {
    console.log("ERROR - GEOCODE", err);
});

如果我删除

docRef.set({
    test: "value stored"
})
.catch((e) => {
    console.log(e);
});

我在日志中得到“ Geocode OK”和 docRef 值。否则什么都没有!什么都没有存储,没有错误!

我不明白为什么只是因为我尝试在Firestore引用中设置数据,但它搞砸了一切!!!

更新

我意识到,如果我故意为该函数创建一个错误以捕获该错误,那么接下来的几行会很好地执行。

例如,如果我在dumbFunction();之前添加var db = ...,则它会捕获错误ERROR - GEOCODE ReferenceError: dumbFunction is not defined,但该函数仍能很好地执行。

如何?

0 个答案:

没有答案