我正在使用Xamarin.Firebase.Auth。在我的应用程序的注册活动中,我想检查以确保尚未使用用户名。我需要检查数据库中的用户名。由于这是注册,因此用户尚未经过身份验证,并且无权访问数据库。我允许对应用程序的这一部分进行匿名身份验证。
在清除用户名后,我使用CreateUserWithEmailAndPasswordAsync
创建新用户,一旦完成,我需要触发我的AuthState监听器。问题是,当用户从匿名用户更改为创建用户时,监听器似乎不会触发。
这是我当前的AuthStateListener:
FirebaseAuth.Instance.AuthState += (sender, e) =>
{
FirebaseUser oUser = e?.Auth?.CurrentUser;
if (oUser != null && !oUser.IsEmailVerified && !oUser.IsAnonymous)
{
//They were successfully created, send the verification email
if (oUser.SendEmailVerification().IsSuccessful)
{
UserProfileChangeRequest oProfile = new UserProfileChangeRequest.Builder()
.SetDisplayName(txtName.Text).Build();
oUser.UpdateProfile(oProfile);
//Add the user information to the database
Users oUserToSave = new Users();
oUserToSave.displayname = txtName.Text;
oUserToSave.email = txtEmail.Text;
oUserToSave.prestige = 1;
oUserToSave.username = sUsername;
//It worked, they need to verify their email address
//redirect them to the verification page
Intent oVerifyIntent = new Intent(this, typeof(VerificationActivity));
StartActivity(oVerifyIntent);
FirebaseAuth.Instance.AuthState += null;
Finish();
}
}
else if (oUser != null && oUser.IsAnonymous && allowAuthChange)
{
//Need to validate their registration
ValidateRegistration();
}
};
如何在CreateUserWithEmailAndPasswordAsync
完成时确保调用侦听器? Firebase的文档声明应在这些实例中触发侦听器:
- 听众注册后
- 用户登录后
- 当前用户退出时
- 当前用户更改时
从匿名用户切换到新创建的用户是否不算作用户更改?
答案 0 :(得分:0)
您可以阅读firebase文档:
https://firebase.google.com/docs/auth/android/anonymous-auth
您需要使用linkWithCredential
方法而不是“普通”signInWith流程。