【发布时间】:2018-07-15 08:56:17
【问题描述】:
我的脚本在返回 assync firestore set 函数的结果时抛出以下错误:
你必须在你的 transaction()-callback 中返回一个 Promise。
根据firebasedocumentation关于事务,set函数返回一个事务本身。
这是我的代码的简化副本。
var myDoc = {
field1: "v1"
};
var docRef = db
.collection("docs")
.doc("1");
return db
.runTransaction(t => {
return t
.set(docRef, chat, {merge:false}); //has i understand, this should return a transaction object but the error says otherwise.
})
.then( doc => {
response.send();
})
.catch(err => {
...;
})
我还是 Nodejs 的新手,对链式异步方法不是很熟悉,所以我肯定在这里犯了一些明显的错误。
【问题讨论】:
-
这可能是关于
return t,我对.runTransaction不熟悉,但您可以尝试将return t替换为return new Promise((resolve, reject) => { t.set(...); resolve(); });
标签: javascript node.js firebase es6-promise google-cloud-firestore