错误:参数“ documentRef”不是有效的DocumentReference。无法序列化“ CollectionReference”类型的对象。 FireStore

时间:2018-09-01 23:21:04

标签: javascript node.js firebase google-cloud-firestore

为了更新文档,我需要执行以下操作:

1)我从名为"Loc"

的集合中的文档中收集数据的第一部分

2)我使用1)中的部分数据来获取名为"userInfo"

的集合中的文档

3)我使用1)和2)中的结果来更新第二个文档

我使用了 Transaction ,因为我需要这3个操作才能根据documentation一次运行所有操作。

return new Promise((res, rej) => {
            var LocRef = db.collection("Loc").doc(newLocale);

            db.runTransaction(function (transaction) {
                return transaction.get(LocRef).then(function (doc) {
                    if (!doc.exists) {
                        throw "Document does not exist!";
                    }
                    var userInfoDocRef = userInfoRef.doc(user_id)
                    transaction.get(userInfoDocRef).then(function (userDoc) {
                        if (!userDoc.exists) {
                            throw "Document does not exist!";
                        }
                        var userInfoUpdate = {
                            "preferred_locale": newLocale,
                            "preferred_pair": userDoc.data().preferred_crypto_currency + doc.data().CurrencyCode,
                            "preferred_fiat_currency": doc.data().CurrencyCode
                        }
                        transaction.update(userInfoRef, userInfoUpdate);
                        var ans = {"success": true}
                        return ans
                    }).catch((e)=>{
                        console.log(e)
                    });
                }).then(function (ans) {
                    res(ans)
                }).catch(function (err) {
                    // This will be an "population is too big" error.
                    console.error(err);
                    rej(err)
                });
            })
        })

但是,出现以下错误:

  

错误:参数“ documentRef”不是有效的DocumentReference。   无法序列化“ CollectionReference”类型的对象Firestore不支持带有自定义原型的JavaScript对象(即通过“ new”运算符创建的对象)。

0 个答案:

没有答案