我正在嘗試添加一個新用戶,firebase-admin然后在自定義集合中保存一個新檔案。
示例代碼如下:
admin.auth().createUser(user)
.then((record) => {
user.uid = record.uid;
userCollection.doc(record.uid).set({...user})
.then(writeResult => {
resolve();
})
.catch(reason => {
reject(reason)
});
})
.catch((err) => {
reject(err);
});
問題是,如果userCollection.doc(record.uid).set({...user})失敗,我希望reason呼叫嵌套的 catch(帶有as 引數)。相反,總是呼叫外部的(使用erras 引數)。
SDK有問題還是我做錯了什么?
謝謝
uj5u.com熱心網友回復:
這是因為您不回傳由 回傳的承諾userCollection.doc(record.uid).set(),因此您不回傳后續then()和catch()方法回傳的承諾。換句話說,您不會回傳promises chain。
但是,實際上,您應該按如下方式鏈接您的 Promise 并避免then()/catch()金字塔。
admin
.auth().createUser(user)
.then((record) => {
user.uid = record.uid;
return userCollection
.doc(record.uid)
.set({ ...user })
})
.catch((err) => {
// Here you catch the potential errors of
// the createUser() AND set() methods
console.log(JSON.stringify(err));
});
更多細節在這里,這里和這里。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/352590.html
標籤:javascript 节点.js 火力基地 谷歌云firestore firebase-admin
下一篇:對除第一列以外的所有列求和
