使用firestore时是否可以通过context.auth属性获取触发云功能的用户的uid?
exports.updateReport = functions.firestore
.document('groups/{groupId}/reports/{nursingId}')
.onUpdate((change, context) => {
const uid : string | undefined = context.auth?.uid;
})
我发现很多关于同一问题的老问题有许多不同的答案。 (该功能有效,该功能有时会工作,或者该功能永远不会工作)
在我的本地设置中我context.auth
总是未定义,所以我不知道我是否犯了错误,或者它根本不起作用。如果是这样的话,是否有其他安全的方式来获取触发相应云功能的用户的uid?
不,这是不可能的火库云功能:对于这些云功能context
参数不包含触发该功能的用户的身份验证信息。
请注意,可以使用实时数据库云函数:它们为通过以下方式触发该函数的用户提供身份验证信息context
范围。
一种解决方法是在 Firestore 文档中添加一个包含用户 uid 的字段。
如果您使用此解决方法,根据您的具体用例(您在问题中写了“是否有其他安全方法”),您可以编写一个安全规则验证来检查该字段是否包含用户的 uid(例如request.resource.data.userId == request.auth.uid
).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)