我的应用程序从今天开始正常工作。我已经在我的Android Flutter应用程序中包含了Firebase存储,它在今天之后工作,我突然得到AppCheck错误。我不包括应用程序检查我们的项目或不强制设置。在那之后,我遵循了初始化appcheck的官方文档:https://firebase.flutter.dev/docs/app-check/usage。
这是我的KotlinMainActivity:
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)
}
}
这是我的main():
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
await FirebaseAppCheck.instance.activate();
runApp(MyApp());
}
我还将此添加到我的app/build.gradle中
dependencies {
implementation 'com.google.firebase:firebase-appcheck-debug:16.0.0-beta01'
}
当我向firebase存储发出请求时,我希望在我的控制台中出现这样的内容:
D DebugAppCheckProvider:将此调试密码输入到项目的Firebase控制台的允许列表中:123a4567-b89c-12d3-e456-789012345678
相反,我得到一个错误:
2021-11-21 18:11:51.442 2091-3452/com.sekspir.grind4gain W/ExponenentialBackoff: network unavailable, sleeping.
2021-11-21 18:11:53.500 2091-3452/com.sekspir.grind4gain W/StorageUtil: Error getting App Check token; using placeholder token instead. Error: com.google.firebase.FirebaseException: Error returned from API. code: 403 body: App attestation failed.
2021-11-21 18:12:11.136 2091-3633/com.sekspir.grind4gain V/NativeCrypto: SSL handshake aborted: ssl=0xdaa42da8: I/O error during system call, Connection reset by peer
我错过什么了吗?我正在使用一个真实的的Android设备与Flutter调试建设。
这是Firestore AppCheck Stats看起来都请求收入x1c 0d1x
但在存储会话中,没有任何请求失败或成功。
2条答案
按热度按时间bnlyeluc1#
您能否再次检查是否正确启用了强制执行?
需要使用Firebase存储解决方案。
您是在“PWA”模式还是在“Native”模式下使用应用程序?
Recaptcha可能是强制性的,具体取决于您的应用的分发方式。
我不确定您在Android Native端实现了
appcheck-debug
依赖项。由于它已经由Flutter库本身实现,因此您应该删除它。
FirebaseAppCheck
的问题,而它在其他设备上工作得很完美。此库仍处于测试阶段,我建议在生产环境中使用它之前等待。*
mo49yndu2#
我明白你的问题了。我也面临着同样的问题,但在我的情况下,问题是我改变了应用程序的名称和应用程序ID(com.example.appname)的释放。但此应用程序ID未在Firebase控制台中更新。因此,您基本上需要使用更新后的应用程序ID更新应用程序中的google-services.json文件。为此,请遵循以下步骤
1.在firebase控制台中用更新后的包名创建一个新的应用程序(把你的新应用程序id放在那里)。
1.下载新的google-services文件(这是主要步骤),然后复制这个新的google-services文件的内容。现在回到你的android/flutter应用程序,用新的google-services.json(你复制的)替换旧的google-services.json文件的内容。
1.现在在firebase控制台中将SHA密钥添加到新应用程序中。
1.现在重建你的flutter/android应用程序,它应该工作。