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

如何将服务器生成的Firebase AppCheck调试令牌注入Android应用?

解决Flutter Firebase AppCheck调试令牌重复添加问题

核心思路

直接使用Firebase支持的自定义调试令牌,通过Android原生代码注入,避免每次卸载重装生成新令牌。

步骤说明

  1. 预先生成并配置调试令牌
    在Firebase控制台的AppCheck模块中,进入「调试」标签页,手动生成或通过服务器接口获取调试令牌,将其添加到允许的调试令牌列表中。

  2. Android原生代码注入令牌
    打开Flutter项目的Android端代码(以Kotlin为例,Java写法类似):

    • 路径:android/app/src/main/kotlin/[你的应用包名]/MainActivity.kt
    • 在onCreate方法中初始化AppCheck时,设置固定调试令牌:
      import com.google.firebase.appcheck.FirebaseAppCheck
      import com.google.firebase.appcheck.debug.DebugAppCheckProviderFactory
      import android.os.Bundle
      import io.flutter.embedding.android.FlutterActivity
      
      class MainActivity : FlutterActivity() {
          override fun onCreate(savedInstanceState: Bundle?) {
              super.onCreate(savedInstanceState)
              // 仅在Debug模式下使用固定调试令牌
              if (BuildConfig.DEBUG) {
                  val debugFactory = DebugAppCheckProviderFactory.getInstance()
                  // 替换成你预先生成的调试令牌
                  debugFactory.setDebugToken("your-custom-debug-token-here")
                  FirebaseAppCheck.getInstance().installAppCheckProviderFactory(debugFactory)
              }
          }
      }
      

    若使用Java:

    import com.google.firebase.appcheck.FirebaseAppCheck;
    import com.google.firebase.appcheck.debug.DebugAppCheckProviderFactory;
    import android.os.Bundle;
    import io.flutter.embedding.android.FlutterActivity;
    
    public class MainActivity extends FlutterActivity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            if (BuildConfig.DEBUG) {
                DebugAppCheckProviderFactory debugFactory = DebugAppCheckProviderFactory.getInstance();
                debugFactory.setDebugToken("your-custom-debug-token-here");
                FirebaseAppCheck.getInstance().installAppCheckProviderFactory(debugFactory);
            }
        }
    }
    
  3. 关键注意事项

    • 务必确保注入的令牌已在Firebase控制台的调试令牌列表中登记,否则AppCheck验证会失败。
    • 一定要通过BuildConfig.DEBUG限制仅在调试构建中使用,绝对不要将调试令牌逻辑混入Release包,避免安全风险。
    • Flutter端无需额外修改,Firebase AppCheck插件会自动复用原生层的配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 04:03:30