使用第3方登录时对FirebaseUser的引用已更新

时间:2018-10-25 22:39:04

标签: firebase firebase-authentication

在与第三方供应商登录时,我无法处理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用户,而不再是匿名用户。

这是预期的行为吗?

预先感谢您的帮助。

0 个答案:

没有答案