亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

場景變化時鑒權失敗

場景變化時鑒權失敗

C#
撒科打諢 2022-11-21 15:57:06
我設置了我的 firebase 身份驗證,它運行良好。但是,當我加載不同的場景并返回歡迎場景后,身份驗證失敗。場景切換時,如何重新授權或保持登錄狀態?我的授權歡迎場景代碼:public void Start()    {        InitializeFirebase();        InitializePlayGamesPlatform();        SignInPlayGames();            }public void InitializeFirebase()    {        Debug.Log("UserManager: Setting up Firebase Auth");        auth = Firebase.Auth.FirebaseAuth.DefaultInstance;        auth.StateChanged += AuthStateChanged;        auth.IdTokenChanged += IdTokenChanged;        // Specify valid options to construct a secondary authentication object.        if (otherAuthOptions != null &&            !(String.IsNullOrEmpty(otherAuthOptions.ApiKey) ||              String.IsNullOrEmpty(otherAuthOptions.AppId) ||              String.IsNullOrEmpty(otherAuthOptions.ProjectId)))        {            try            {                otherAuth = Firebase.Auth.FirebaseAuth.GetAuth(Firebase.FirebaseApp.Create(                  otherAuthOptions, "Secondary"));                otherAuth.StateChanged += AuthStateChanged;                otherAuth.IdTokenChanged += IdTokenChanged;            }            catch (Exception)            {                Debug.Log("UserManager: ERROR: Failed to initialize secondary authentication object.");            }        }        AuthStateChanged(this, null);            }public void InitializePlayGamesPlatform()    {        PlayGamesClientConfiguration config = new PlayGamesClientConfiguration.Builder()            .RequestServerAuthCode(false)            .Build();        PlayGamesPlatform.InitializeInstance(config);        PlayGamesPlatform.Activate();        auth = FirebaseAuth.DefaultInstance;    }
查看完整描述

2 回答

?
慕容森

TA貢獻1853條經驗 獲得超18個贊

我嘗試了很多但我沒有得到想要的行為(關于重新授權/應用程序不退出)

即使我改變場景,憑據仍然存在。

如果您想更改帳戶,

重新啟動應用程序,然后在歡迎場景中注銷(facebook 或 google)


查看完整回答
反對 回復 2022-11-21
?
浮云間

TA貢獻1829條經驗 獲得超4個贊

假設它第一次按預期工作,聽起來DontDestroyOnLoad就是您要找的東西:

切換場景時不會破壞該對象 -> 因此不會Start再次運行該方法。但是,您還需要將它與singleton模式結合起來,以確保在返回第一個場景時不會再次添加/運行它:

public class AuthComponent : MonoBehaviour

{

    private static AuthComponent singleton;


    private void Awake()

    {

        // Check if already another AuthComponent running

        if(singleton)

        {

            Debug.Log("Already another AuthComponent running");

            Destroy(gameObject);

            return;

        }


        // Otherwise store a global reference of this AuthComponent

        singleton = this;


        // and make it DontDestroyOnLoad

        DontDestroyOnLoad(gameObject);

    }


    ...

}


查看完整回答
反對 回復 2022-11-21
  • 2 回答
  • 0 關注
  • 120 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號