我试图更改Cloud Function上Firestore中保存的用户的名称,但是出现以下错误,我无法部署它。
属性'名称'在类型'DocumentData |中不存在。未定义”。
代码在这里。
def findTwoLargest(*args):
max1 = 0
max1 = max(args)
args.sort()
max2 = 0
max2 = args[-2]
return max1, max2
m1, m2 = findTwoLargest(-2, 30, -4, 9, 1, 6)
print(m1, m2)
对不起,请让我知道如何解决此问题。
答案 0 :(得分:1)
4
1 : 6
Operator: +
2 : 5
Operator: -
3 : 2
Operator: *
4 : 5
Operator: =
Calculating...
11
3
10
可以返回DocumentData对象,或者如果未找到文档,则返回undefined。错误是TypeScript告诉您,您可能正试图从未定义的对象中提取userDoc.data()
属性,这会使程序崩溃。
您应该做的是在访问属性之前检查以确保已定义返回值:
name
请注意,我删除了对const userDoc = await admin
.firestore()
.doc(`users/${uid}`)
.get()
const data = userDoc.data()
if (data) {
const { name } = userDoc.data()
if (name === 'firstName') {
userDoc.ref.update({
name: 'secondName',
})
}
}
else {
// decide what you want to do if the document doesn't exist
}
的呼叫。由于等待的方式,这里完全没有必要。
此外,您似乎正在使用Firestore库的非常老版本。很久以前,DocumentData已被DocumentSnapshot取代。