從一個Firebase函式(使用Firebase管理)在一個Firebase檔案中進行簡單的更新要花費3分鐘以上!
一個簡單的更新要花費3分鐘以上。
- 使用Firebase模擬器,更新是瞬間完成的 。
- Firestore資料庫的條目總數不超過20個 。
- 延遲甚至發生在同一分鐘的后續請求中(似乎不是一個 "冷啟動 "的問題)
const userData = {
firstName: "John"。
lastName: "Doe"/***** from here *****/
functions.logger.log("Updating user"/span>, userData)
const usersRef = admin.firestore()。 collection("user").doc("1")
usersRef.set(userData, { merge: true })
.then(() => {
/***** TAKES 3 MINUTES TO GET HERE *****/
functions.logger.log("成功更新用戶!", userData)
})
.catch((error) => {
functions.logger.error("Error updating user!"/span>, error)
})
如果有任何幫助,我們將非常感激!
uj5u.com熱心網友回復:
試試這個,獲取參考是異步的,你沒有處理這個問題。
const userData = {
firstName: 'John',
lastName: 'Doe',
}
functions.logger.log('Updating user', userData)。
經理
.firestore()
.collection('user')
.doc('1')
.then((usersRef) => {
usersRef
.set(userData, { merge: true })
.then(() => {
/***** TAKES 3 MINUTES TO GET HERE *****/
functions.logger.log('成功用戶更新!', userData)
})
.catch((error) => {
functions.logger.error('Error updating user!'/span>, error)
})
})
這段代碼的更簡潔(也更可靠)的版本是使用async/await,而不是承諾鏈
。const cleanFunction = async ( ) => {
const userData = {
firstName: 'John',
lastName: 'Doe',
}
functions.logger.log('Updating user', userData)。
try {
const usersRef = await admin.firestore()。 collection('users')。doc('1')
await usersRef.set(userData, { merge: true })
functions.logger.log('Success user updated!'/span>, userData)
} catch (error) {
functions.logger.error('錯誤更新用戶!', error)
}
}
cleanFunction()
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/308592.html
標籤:
