使用 Unity 以匿名方式向 Firebase 驗證

您可以使用 Firebase Authentication 來建立和使用臨時匿名帳戶 使用 Firebase 進行驗證這些暫時的匿名帳戶 讓尚未註冊應用程式的使用者與資料受到妥善保護 並限制安全性規則如果匿名使用者決定註冊您的應用程式,您可以 將他們的登入憑證連結至匿名的 帳戶,方便他們在 稍後的工作階段

事前準備

  1. 使用前 Firebase Authentication、 您需要新增 Firebase Unity SDK (具體來說 FirebaseAuth.unitypackage) 加入 Unity 專案。

    如需這些初始設定步驟的詳細操作說明,請前往 將 Firebase 加入您的 Unity 專案

  2. 如果您尚未將應用程式連結至 Firebase 專案,請前往 Firebase 控制台
  3. 啟用匿名驗證:
    1. Firebase 控制台中開啟「Auth」專區。
    2. 在「Sign-in Methods」頁面中,啟用「Anonymous」 登入方式。
    3. 選用:如果您已將專案升級至 Firebase Authentication with Identity Platform,您可以啟用自動清理功能。時間 啟用這項設定後,系統會自動建立超過 30 天前的匿名帳戶 已刪除。如果專案已啟用自動清理功能,匿名驗證就不會 會計入用量限製或計費配額。詳情請見 自動清理

透過 Firebase 匿名驗證

未登入的使用者使用需要用資料進行驗證的應用程式功能時 Firebase 完成下列步驟,以匿名方式登入使用者:

FirebaseAuth 類別是所有 API 呼叫的閘道, 您可透過 FirebaseAuth.DefaultInstance 存取。
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
敬上 1.呼叫 Firebase.Auth.FirebaseAuth.SignInAnonymouslyAsync
auth.SignInAnonymouslyAsync().ContinueWith(task => {
  if (task.IsCanceled) {
    Debug.LogError("SignInAnonymouslyAsync was canceled.");
    return;
  }
  if (task.IsFaulted) {
    Debug.LogError("SignInAnonymouslyAsync encountered an error: " + task.Exception);
    return;
  }

  Firebase.Auth.AuthResult result = task.Result;
  Debug.LogFormat("User signed in successfully: {0} ({1})",
      result.User.DisplayName, result.User.UserId);
});

將匿名帳戶轉換為永久帳戶

當匿名使用者註冊您的應用程式時,您可以允許對方 繼續透過新帳戶完成工作。舉例來說,您可能會想: 在使用者註冊前,將商品加入購物車 納入新帳戶的購物車中。若要這樣做,請完成下列步驟 步驟:

  1. 使用者註冊時,請完成使用者的登入流程 驗證服務供應商的憑證,最多可包括 (但不包括) 呼叫 Firebase.Auth.FirebaseAuth.SignInAndRetrieveDataWithCredentialAsync 方法。例如取得使用者的 Google ID 權杖 Facebook 存取權杖,或電子郵件地址和密碼。
  2. 取得新驗證供應商的 Firebase.Auth.Credential

  3. Firebase.Auth.Credential 物件傳遞至登入使用者的 LinkWithCredentialAsync 方法:

如果呼叫 LinkWithCredentialAsync 成功,使用者的新帳戶可以 存取匿名帳戶的 Firebase 資料。

自動清理

如果您已將專案升級至 Firebase Authentication with Identity Platform,即可 請在 Firebase 控制台中啟用自動清除功能。啟用這項功能即表示您允許 Firebase 會自動刪除建立至今超過 30 天的匿名帳戶。在採用自動變更功能的專案中 啟用清理功能,匿名驗證不會計入用量限製或計費配額。

  • 啟用自動清除功能後,系統可能會自動刪除所有匿名帳戶 建立後 30 天即可刪除。
  • 現有的匿名帳戶可在 30 天後自動刪除 啟用自動清理功能。
  • 如果您關閉自動清理功能,任何已排定刪除的匿名帳戶都會保留下來 排定刪除作業。
  • 如「升級」連結至任何登入方式來匿名帳戶 而不是自動刪除

如要在啟用這項功能前,查看有多少使用者會受到影響,並 專案已升級至 Firebase Authentication with Identity Platform,並依據下列條件進行篩選: 雲端中的 is_anon 記錄

後續步驟

使用者現在可以透過 Firebase 進行驗證,因此你可以控管他們 訓練資料使用 Firebase 規則