我完成了以下所有步骤,但由于Firebase Database connection was forcefully killed by the server. Will not attempt reconnect. Reason: Invalid appcheck token
,现在无法连接到Firebase。我在模拟器和真实的设备上都得到了同样的错误。此外,现在应用程序将无法连接到Firebase。我检查了一些没有下面代码的其他应用程序,所有这些应用程序都可以连接并正常工作。
所有的步骤都在下面。
1-下面的debug directions
数据库AppCheckProvider:将此调试密码输入到项目的Firebase控制台的允许列表中:123a4567-b89c-12d3-e456-789012345678
2-我去Firebase Console
> AppCheck
> Apps
>点击3 dots
上的Android App
> Manage debug tokens
> Add debug token
>粘贴在123a4567-b89c-12d3-e456-789012345678
作为名称和值我按下Generate token
。
当我运行我的应用程序时,我在LogCat中得到了以下内容:
Enter this debug secret into the allow list in the Firebase Console for your project: XXXXXXXX-YYYY-ZZZZ-AAAA-XXXXXXXXXXXX
Detected invalid AppCheck token. Reconnecting (2 attempts remaining)
Detected invalid AppCheck token. Reconnecting (1 attempts remaining)
Detected invalid AppCheck token. Reconnecting (0 attempts remaining)
Firebase Database connection was forcefully killed by the server. Will not attempt reconnect. Reason: Invalid appcheck token
Error getting App Check token; using placeholder token instead. Error: com.google.firebase.FirebaseException: No AppCheckProvider installed.
3-然后,我做了与上面描述的相同的事情,但是对于Name,我粘贴了 *XXXXXXXX-YYYY-ZZZ-AAAA-XXXXXXXXXXX *,并为Value生成了另一个token:
4-Gradle:
implementation(platform('com.google.firebase:firebase-bom:32.3.1'))
implementation("com.google.firebase:firebase-appcheck-ktx")
implementation("com.google.firebase:firebase-appcheck-debug")
implementation("com.google.firebase:firebase-appcheck-playintegrity")
5-主要活动:
override fun onCreate(savedInstanceState: Bundle?) {
installSplashScreen()
super.onCreate(savedInstanceState)
if (BuildConfig.DEBUG) {
Firebase.appCheck.installAppCheckProviderFactory(
DebugAppCheckProviderFactory.getInstance(),
)
} else {
Firebase.appCheck.installAppCheckProviderFactory(
PlayIntegrityAppCheckProviderFactory.getInstance(),
)
}
}
6-在Google Play控制台中,我转到The_Specific_App_Im_Using
> Setup
> App Signing
>复制SHA-256证书指纹。
7-我去Firebase控制台> AppCheck
> Apps
>点击Android App
>点击Play Integrity
>从Play商店粘贴SHA-256证书指纹。
另外两个SHA-256证书是以前添加的,我忘了为什么,但它与RevenueCat有关
1条答案
按热度按时间11dmarpk1#
当我将firebase debug secret测试密钥
123a4567-b89c-12d3-e456-789012345678
添加到问题步骤2的Value部分时,我得到了以下错误:令牌值必须是版本4 UUID
这导致我将其添加到Name部分并为一个值生成一个令牌,该令牌被接受。因为它被接受了,所以我对第3步中Logcat打印的密钥做了同样的事情:
Enter this debug secret into the allow list in the Firebase Console for your project: XXXXXXXX-YYYY-ZZZZ-AAAA-XXXXXXXXXXXX
,也被接受,但这也是导致问题的原因。在我遵循的任何方向中从未解释过的是,在Logcat中从第3步
Enter this debug secret into the allow list in the Firebase Console for your project: XXXXXXXX-YYYY-ZZZZ-AAAA-XXXXXXXXXXXX
打印出来的标记应该在第2步的Value部分中。您可以在名称部分添加任何您想要的名称。这里有一个例子原来
123a4567-b89c-12d3-e456-789012345678
是一个示例键,它什么也不做。正如我之前提到的,没有人说真实的密钥应该进入Value部分(这对一些人来说可能很明显,但是Generate token是干什么的?)。Firebase对这整个混乱的解释很差。非常重要
1.对于Android,您使用的每个测试设备和模拟器都将获得自己的
Enter this debug secret into the allow list in the Firebase Console for your project: XXXXXXXX-YYYY-ZZZZ-AAAA-XXXXXXXXXXXX
消息。所以你必须从我的问题转到第二步,为每个问题输入新的密钥。例如,我使用2个模拟器和1个真实的设备,所以我有3个Name/Values对。1.如果您使用的是真实的Android设备,则可能需要等待几分钟才能同步。在我输入与真实的设备相关的调试秘密后,大约花了15分钟才能通过Android Studio连接到Firebase。
1.对于iOS,你必须做同样的事情。每个模拟器和真实的设备,你用来测试,必须有自己的个人价值的步骤2在我的问题。在调试器中,您将看到:
[Firebase/AppCheck][...] Firebase App Check debug token: XXXXXXXX-YYYY-ZZZZ-AAAA-XXXXXXXXXXXX
。例如,我使用1个模拟器和1个真实的设备,因此对于iOS,我有2个Name/Value对。