firebase cloud函数上下文.消防局的外勤工作?



是否可以通过上下文获得触发云功能的用户的uid ?使用firestore时的Auth属性?

exports.updateReport = functions.firestore
.document('groups/{groupId}/reports/{nursingId}')
.onUpdate((change, context) => {
const uid : string | undefined = context.auth?.uid;
})

我发现很多关于同一个问题的老问题有很多不同的答案。(该功能可以工作,该功能可能有时会工作或者该功能永远不会工作)

在我的本地设置Icontext.auth总是未定义的,所以我不知道我是否犯了一个错误,或者它甚至根本不工作。如果是这样的话,是否有其他安全的方法来获取触发相应云功能的用户的uid ?

不,Firestore是不可能的云功能:对于这些云功能,context参数不包含触发该功能的用户的认证信息。

请注意,实时数据库是可能的云功能:通过context参数为触发该功能的用户提供认证信息。


一种解决方法是在Firestore文档中有一个包含用户uid的字段。

如果您使用此解决方案,根据您的确切用例(您写了"是否有其他安全方法")。在您的问题中),您可以编写一个安全规则验证来检查该字段是否包含用户的uid(例如request.resource.data.userId == request.auth.uid)。

最新更新