我想在我的Android Flutter应用程序中包括Firebase应用程序检查Firebase存储。因此,我遵循的是正式文档:https://firebase.flutter.dev/docs/app-check/usage。
这是我的Kotlin MainActivity:
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());
}
我还把这个添加到我的应用程序/build.gradle中
dependencies {
implementation 'com.google.firebase:firebase-appcheck-debug:16.0.0-beta01'
}
当我请求firebase存储时,我希望在我的控制台中有这样的东西:
D DebugAppCheckProvider:将此调试秘密输入到项目的Firebase控制台的允许列表中: 123a4567-b89c-12d3-e456-789012345678
相反,我得到了一个错误:
获取App令牌时出错;使用占位符令牌代替。错误: com.google.firebase.FirebaseException:从API返回的错误。代码: 403 body:这个Android客户端应用程序的请求被阻止。
我错过了什么吗?我正在使用一个真正的Android设备与颤振调试构建。
发布于 2021-08-03 14:33:38
再试着下载你的google-services.json。
如果这没有帮助,可能需要添加/重新添加您的debug key's SHA-1 certificate
之后,获得新的google-services.json
显然,通过firebase作为blocked
意味着您的API键配置不正确。
如果您收到此错误:
Error: com.google.firebase.FirebaseException: Error returned from API. code: 403 body: App attestation failed.
在SafetyNet中检查Project Settings > App Check
提供程序。您需要提供应用程序的签名证书的沙256指纹。(还建议增加令牌的生存期)
发布于 2021-09-02 02:33:27
在主活动DebugAppCheckProviderFactory
完成之前,您必须初始化onCreate
。这对我有用。
class MainActivity : FlutterActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
FirebaseApp.initializeApp(/*context=*/ this);
val firebaseAppCheck = FirebaseAppCheck.getInstance()
firebaseAppCheck.installAppCheckProviderFactory(
DebugAppCheckProviderFactory.getInstance())
super.onCreate(savedInstanceState)
}
}
请注意,此代码只应放在调试模式中。您可能希望将其排除在版本构建之外。
https://stackoverflow.com/questions/68299859
复制相似问题