当前位置: 首页 > 知识库问答 >
问题:

无法使用应用程序检查为Firebase存储生成调试令牌

屈昊天
2023-03-14

我想在我的Android Flatter应用程序中包括Firebasehtml" target="_blank">应用程序检查Firebase存储。因此,我遵循官方文件:https://firebase.flutter.dev/docs/app-check/usage.

这是我的静态编程语言Main Active:

import android.os.Bundle
import com.google.firebase.FirebaseApp
import com.google.firebase.appcheck.FirebaseAppCheck
import com.google.firebase.appcheck.debug.DebugAppCheckProviderFactory
import io.flutter.embedding.android.FlutterActivity


class MainActivity : FlutterActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        FirebaseApp.initializeApp(/*context=*/ this);
        val firebaseAppCheck = FirebaseAppCheck.getInstance()
        firebaseAppCheck.installAppCheckProviderFactory(
                DebugAppCheckProviderFactory.getInstance())
        super.onCreate(savedInstanceState)
    }
}

这是我的主要观点:

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  await FirebaseAppCheck.instance.activate();
  runApp(MyApp());
}

我还将其添加到我的应用程序/构建中。格拉德尔

dependencies {
  implementation 'com.google.firebase:firebase-appcheck-debug:16.0.0-beta01'
}

当我向firebase storage发出请求时,我希望在我的控制台中出现如下内容:

D DebugAppCheckProvider:将此调试秘密输入到项目Firebase控制台的允许列表中:123a4567-b89c-12d3-e456-789012345678

相反,我得到了一个错误:

获取应用程序检查令牌时出错;改为使用占位符标记。错误:com.google.火基。FirebaseException:从API返回的错误。代码:403正文:来自此Android客户端应用程序的请求被阻止。

我错过什么了吗?我使用的是一个真正的Android设备,带有颤振调试构建。

共有2个答案

谷梁子濯
2023-03-14

在完成主活动onCreate之前,必须初始化调试AppCheckProviderFactory。这对我有用。

class MainActivity : FlutterActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        FirebaseApp.initializeApp(/*context=*/ this);
        val firebaseAppCheck = FirebaseAppCheck.getInstance()
        firebaseAppCheck.installAppCheckProviderFactory(
                DebugAppCheckProviderFactory.getInstance())
        super.onCreate(savedInstanceState)
    }
}

请注意,此代码应仅置于调试模式。您可能希望将其从版本构建中排除。

尹何平
2023-03-14

尝试再次下载您的google-services.json。

如果这不起作用,可能需要添加/重新添加您的调试密钥的SHA-1证书,然后获取新的google服务。json

显然,被firebase阻止意味着API密钥配置不正确。

如果您遇到此错误:

 Error: com.google.firebase.FirebaseException: Error returned from API. code: 403 body: App attestation failed. 

项目设置中检查您的SafetyNet提供程序

 类似资料: