Delphi FirebaseOptions.fromResource返回null,使所有firebase框架不工作

Delphi 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

我的项目中有返回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.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>