Delphi FirebaseOptions.fromResource返回null,使所有firebase框架不工作
我的项目中有返回null的FirebaseOptions.fromResourceDelphi FirebaseOptions.fromResource返回null,使所有firebase框架不工作,delphi,firebase,google-play-services,firebase-cloud-messaging,Delphi,Firebase,Google Play Services,Firebase Cloud Messaging,我的项目中有返回null的FirebaseOptions.fromResource public static FirebaseOptions fromResource(Context context) { zzam com_google_android_gms_common_internal_zzam = new zzam(context); Object string = com_google_android_gms_common_internal_zzam.getStrin
public static FirebaseOptions fromResource(Context context) {
zzam com_google_android_gms_common_internal_zzam = new zzam(context);
Object string = com_google_android_gms_common_internal_zzam.getString("google_app_id");
return TextUtils.isEmpty(string) ? null : new FirebaseOptions(string, com_google_android_gms_common_internal_zzam.getString("google_api_key"), com_google_android_gms_common_internal_zzam.getString("firebase_database_url"), com_google_android_gms_common_internal_zzam.getString("ga_trackingId"), com_google_android_gms_common_internal_zzam.getString("gcm_defaultSenderId"), com_google_android_gms_common_internal_zzam.getString("google_storage_bucket"));
}
该函数是模糊的,但它是seam,即com\u google\u android\u gms\u common\u internal\u zzam.getString(“google\u app\u id”)代码>返回一个空字符串
我已经将google-services.json放在根目录(即文件夹./AndroidManifest.xml在哪里)
这是我所有的文件夹:
\assets
\bin (contain kiskis.apk)
\classes (contain classes.dex)
\debug (contain libmyapp.so)
\library
\lib
\armeabi
\armeabi-v7a (contain libmyapp.so)
\mips
\res
我必须把google-services.json放在哪里?但即使在google-services.json中,我也没有看到任何名为“google_app_id”的键,那么这个键来自哪里呢
注:我了解到:
google服务插件有两个主要功能:
处理google-services.json文件并生成Android资源
可以在应用程序的代码中使用。请参见添加JSON文件
更多信息
但我不明白这是怎么回事?因为我不在android studio下(我在Delphi下),所以我不明白gradle是什么,它到底做什么。。。Google Services Gradle插件是在运行时还是在编译时处理Google-Services.json的?Gradle是Android Studio用来编译和构建final.apk包的构建系统
Google Services Gradle插件是Gradle的编译时插件,它接受Google Services.json
文件并生成相应的xml字符串资源文件,该文件随后将被编译为应用程序使用的二进制资源
因此,将googleservices.json
原样添加到Delphi项目是无用的,因为Firebase不会以任何方式直接使用该文件
由于google services.json
和生成的values.xml
文件都是简单的人类可读文件,您只需偶尔创建values.xml
文件,就可以手动将其中一个转换为另一个,并填充适当的xml字段
您可以在引用的链接中找到其结构描述
1035469437078-e8mr503bun5eaevqctn4u807q4hpi44s.apps.googleusercontent.com
1035469437078
https://myapp.firebaseio.com
1:1035469437078:android:73a4fb8297b2cd4f
AIzaSyFE3G2eN0XZPl-IeEvZhzKOAgC9vy9imVE
myapp.appspot.com
完成这一部分后,您必须编译values.xml
,并将其包含在Delphi项目中
如何做到这一点,您可以在创建R.java
和在类中包含R$
类的原则中找到。dex
是相同的。谢谢。。。现在完成工作:)现在我只需要理解这一点,我已经完成firebase:)
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="default_web_client_id" translatable="false">1035469437078-e8mr503bun5eaevqctn4u807q4hpi44s.apps.googleusercontent.com</string>
<string name="gcm_defaultSenderId" translatable="false">1035469437078</string>
<string name="firebase_database_url" translatable="false">https://myapp.firebaseio.com</string>
<string name="google_app_id" translatable="false">1:1035469437078:android:73a4fb8297b2cd4f</string>
<string name="google_api_key" translatable="false">AIzaSyFE3G2eN0XZPl-IeEvZhzKOAgC9vy9imVE</string>
<string name="google_storage_bucket" translatable="false">myapp.appspot.com</string>
</resources>