我刚刚升级到Firebase云功能1.0,由于没有event
参数,因此没有event.auth.variable.uid
用于提供有关当前用户的信息(尽管未记录)。
Firebase 1.0具有新的上下文参数,类似于
{ service: 'firebaseio.com',
name: 'projects/_/<ref>/pushId5' },
authType: 'ADMIN',
params: { pushId: 'pushId5' } }
如何在新的Firebase函数sdk中获取当前用户信息?
最佳答案
根据文档:
EventContext.auth
V1.0.0引入了两个新属性,用于为触发功能的用户访问用户信息,包括权限。
EventContext.auth
包含诸如uid
和经过身份验证的用户的auth令牌的信息。
EventContext.authType
包含权限级别,例如,允许您检测用户是否为管理员用户。
使用未记录的event.auth
字段的开发人员应更新任何相关代码以使用这些新属性。
因此,要获取有关用户的信息,请执行以下操作:
exports.dbWrite = functions.database.ref('/path/with/{id}').onWrite((data, context) => {
const authVar = context.auth.uid;
const authType = context.authType.ADMIN;
});
更多信息在这里:
https://firebase.google.com/docs/functions/beta-v1-diff#sdk_changes_by_trigger_type
https://firebase.google.com/docs/reference/functions/functions.EventContext#.authType