我有问题。我在android studio中编写了应用程序。将app发布到Play商店后,firebase数据库根本不起作用。我将SHA1键添加到firebase控制台项目设置中,可能出错了什么?
任何帮助表示感谢。
我从这里拿了SHA1键:
答案 0 :(得分:1)
调试和发布版本有不同的SHA1密钥,您最有可能使用调试SHA1密钥
使用下面的代码生成重新密钥SHA1密钥并将其添加到控制台firebase将起作用
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
答案 1 :(得分:1)
我找到了解决方案,但它非常奇怪。我存储所有数据enter image description here的类中的变量不是私有的。在我为所有变量添加私有修饰符之后,问题已解决enter image description here
答案 2 :(得分:0)
您会发现该版本APK和调试APK具有不同的SHA1和google services
的不同API密钥。因此,您需要在项目设置中的Firebase上添加它们。完成此操作后,您需要重新下载google-services.json文件并将其放在项目的正确位置。使用密钥库创建新版本,并在Google Play商店中发布应用。
希望它有所帮助。
答案 3 :(得分:0)
您需要注册自己的 SHA-1 或 SHA-256 键 RELEASE-APK 与使用=>
add finger print
选项在Firebase项目设置上的 DEBUG-APK 不同。
C:\Program Files\Java\bin
目录,然后使用此命令来生成调试SHA指纹(如果要生成txt文件的密钥,即在 D:目录中,并在一个名为 sha.txt 的文本文件中,将其添加到以下命令的末尾:> D:\sha.txt:
)keytool-列表-v -keystore〜/ .android / debug.keystore -alias androiddebugkey -storepass android -keypass android
Build => Generate signed Apk/Bundle
选项生成发行版APK时,就会生成释放密钥库。> D:\sha.txt:
)keytool -list -v -keystore <keystore_path\your_keystore_name> -alias <your_alias_name>
答案 4 :(得分:0)
对于那些仍然面临类似问题的人。
考虑的事项DataSnapshot.getValue(Class)
或DatabaseReference.setValue(Object)
读取和写入数据,则需要在proguard-rules.pro文件中添加规则:-keepattributes Signature
# This rule will properly ProGuard all the model classes in
# the package com.yourcompany.models. Modify to fit the structure
# of your app.
-keepclassmembers class com.yourcompany.models.** {
*;
}