You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin Android中Firebase AppCheck Token始终为空问题求助

Xamarin Android Firebase AppCheck 问题排查求助

核心问题

已被Firebase AppCheck相关问题困扰一周,具体表现:

  • 调用GetToken()方法始终返回固定异常Token:eyJlcnJvciI6IlVOS05PV05fRVJST1IifQ==,调试模式、真机生产模式、Play Console内部测试渠道下载的应用均出现此情况。
  • 使用Firebase Console生成的调试Token调用启用AppCheck的Firebase Storage时,始终提示AppCheck Token is invalid。

获取Token的代码实现

public async void GetToken()
{
 var AppCheckToken =  await AppCheck.GetToken(false);

            if (AppCheckToken is AppCheckTokenResult Tok)
            {
                string r;
                r = Tok.Token;
                Preferences.Set("AppCheckToken", r);
            }
}

初始AppCheck初始化代码

auth = FirebaseAuth.GetInstance(app);
PlayIntegrityAppCheckProviderFactory f = new PlayIntegrityAppCheckProviderFactory();
f.Create(app);
AppCheck = FirebaseAppCheck.GetInstance(app);
AppCheck.InstallAppCheckProviderFactory(f);
AppCheck.SetTokenAutoRefreshEnabled(true);

抛出的异常信息

--- End of managed Firebase.FirebaseException stack trace --- com.google.firebase.FirebaseException: null at
com.google.firebase.appcheck.internal.DefaultFirebaseAppCheck.lambda$getToken$1(DefaultFirebaseAppCheck.java:205)
at
com.google.firebase.appcheck.internal.DefaultFirebaseAppCheck$$ExternalSyntheticLambda1.then(Unknown
Source:0) at
com.google.android.gms.tasks.zze.run(com.google.android.gms:play-services-tasks@@18.0.2:1)
at android.os.Handler.handleCallback(Handler.java:942) at
android.os.Handler.dispatchMessage(Handler.java:99) at
android.os.Looper.loopOnce(Looper.java:201) at
android.os.Looper.loop(Looper.java:288) at
android.app.ActivityThread.main(ActivityThread.java:7892) at
java.lang.reflect.Method.invoke(Native Method) at
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936) Caused
by: java.lang.NumberFormatException: null at
java.lang.Long.parseLong(Long.java:699) at
java.lang.Long.parseLong(Long.java:861) at
com.google.firebase.appcheck.playintegrity.internal.PlayIntegrityAppCheckProvider.lambda$getPlayIntegrityAttestation$4$com-google-firebase-appcheck-playintegrity-internal-PlayIntegrityAppCheckProvider(PlayIntegrityAppCheckProvider.java:105) at
com.google.firebase.appcheck.playintegrity.internal.PlayIntegrityAppCheckProvider$$ExternalSyntheticLambda1.then(Unknown
Source:4) at
com.google.android.gms.tasks.zzo.run(com.google.android.gms:play-services-tasks@@18.0.2:1)
... 8 more

后续尝试的操作及结果

  • 更换初始化方式:
    FirebaseAppCheck AppCheck = FirebaseAppCheck.Instance; 
    AppCheck.InstallAppCheckProviderFactory(PlayIntegrityProviderFactory.Instance);
    
  • 曾触发PlayStore is not uptodate in your device异常,更新PlayStore后,恢复为上述NumberFormatException。
  • 尝试使用AddOnSuccessListener(this)获取Token,结果无变化。
  • 确认GetToken()返回的AppCheckToken始终为DefaultFirebaseAppCheckTokenResult类实例。

因缺少C#版本Firebase AppCheck官方使用文档,无法定位问题根源,寻求解决思路。


内容的提问来源于stack exchange,提问作者Exception

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 13:55:36