在文档中根本不清楚如何检查新登录的用户之前是否已登录我的Web应用程序。这里引用了一个isNewUser()调用:
目前尚不清楚的是,在使用Firebase身份验证调用和观察者时如何访问此调用。
firebase.auth().onAuthStateChanged(authStateObserver);
人使用指定的提供程序登录后,authStateObserver将获得一个用户对象。无法使用此用户对象来调用.isNewUser(),因此如何从此authStateObserver内部获取到具有.isNewUser()调用的AdditionalUserInfo?这是在网络应用程序中的javascript中。
答案 0 :(得分:0)
firebase.auth().onAuthStateChanged
仅用FirebaseUser
触发。您无法获得additionalUserInfo
或任何credential
例如。与该观察者的结果相关联的OAuth令牌。登录承诺解决后,您必须从firebase.auth.UserCredential
获取它。
由于这些结果仅在登录时可用一次,并且Auth不会刷新OAuth凭据或主动更新基础OAuth配置文件,因此Firebase Auth选择不在onAuthStateChanged
侦听器中提供它们,因为这可能会误导开发人员以为实际上,此信息仅在登录时可用一次,因此该侦听器可用于侦听/获取新凭据或其他用户数据。
观察者将仅观察到更改为FirebaseUser的情况。登录或退出事件。
答案 1 :(得分:0)
对于isNewUser(),进入FirebaseUser类,单击子类,它将带您进入zzn类(适用于Android及更高版本)。搜索“ isNewUser”,您将找到一个用该字符串标记的字段。是zzj:
@Field(
id = 10,
getter = "isNewUser"
)
private boolean zzj;
现在搜索该字段的getter,在我的情况下是:
public final boolean zzj() {
return this.zzj;
}
因此在您的代码库中,这是条件:((zzn) firebaseUser).zzj()
所有您需要做的就是遵循Zzzzz字母。 Smh(痛苦的命名)。