在我的onCreate
auth cloud函数firebase handler中,我如何判断用户是否是匿名的,例如,我在客户端上的onAuthStateChanged
或onIdTokenChanged
响应中获得的isAnonymous
属性?
exports.createHandler = functions.auth.user().onCreate((user, context) => {
let uid = user.uid,
isAnonymous = ????;
});
3条答案
按热度按时间brc7rcf01#
似乎您无法从Admin SDK获取此信息。SDK中没有允许获取此信息的方法。
原因是“
isAnonymous
只是一个客户端构造”,如下所述:https://github.com/firebase/firebase-admin-node/issues/127 .isAnonymous
只是客户端构造。如果使用signInAnonymously()
创建用户,则此标志设置为true(仅限客户端)。例如,您可以使用createUser,只创建一个没有任何配置文件信息的用户(没有电子邮件,电话,密码,等等)。那会被认为是匿名的吗?如果你只用一封电子邮件创建一个用户呢?自定义auth用户呢?你也可以从一个非匿名帐户中取消所有提供者的链接。这个用户会变成匿名的吗?基本上,你需要应用你自己的标准来定义匿名用户的构成。当你列出用户时,你也许可以检查没有链接提供商,没有为用户设置电子邮件/电话号码等。
vcirk6k62#
我知道我迟到了,但也许这能帮上忙。
对我来说,从auth令牌获取提供程序信息工作正常:
上下文.身份验证.令牌.firebase.登录提供程序
g6ll5ycj3#
我已经在模拟器中进行了测试,发现匿名用户没有providerData信息。
函数中的密码用户onCreate触发器返回
匿名用户返回