在与第三方供应商登录时,我无法处理Auth状态更改事件。我的设置与Unity文档基本相同:
Firebase.Auth.FirebaseAuth auth;
Firebase.Auth.FirebaseUser user;
// Handle initialization of the necessary firebase modules:
void InitializeFirebase() {
Debug.Log("Setting up Firebase Auth");
auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
auth.StateChanged += AuthStateChanged;
AuthStateChanged(this, null);
}
// Track state changes of the auth object.
void AuthStateChanged(object sender, System.EventArgs eventArgs) {
if (auth.CurrentUser != user) {
bool signedIn = user != auth.CurrentUser && auth.CurrentUser != null;
if (!signedIn && user != null) {
Debug.Log("Signed out " + user.UserId);
}
user = auth.CurrentUser;
if (signedIn) {
Debug.Log("Signed in " + user.UserId);
}
}
}
基本流程是,我首先创建一个匿名用户帐户。 这会将“用户”引用设置为我的匿名FirebaseUser。
后来我使用链接到现有帐户的Google凭据登录。
AuthStateChanged被正确调用,但比较:
if (auth.CurrentUser != user)
失败,因为“用户”已指向新的Google用户,而不再是匿名用户。
这是预期的行为吗?
预先感谢您的帮助。