我可以从Firebase Remote Config的默认值中获取JSONObject吗?



我需要从 Firebase 中远程config的默认值获取JSONObject。到FirebaseRemoteConfig.getString(),它被转换为字符串,但不在JSONObject中,说

org.json.JSONException: Unterminated object at character xx

我在下面附加远程config的默认值:

  <entry>
    <key>welcome_message</key>
    <value>{"version" :1,"type":"category","name":"CATEGORY"}
    </value>
  </entry>

我现在在下面附加我的 Java 代码:

  String welcomeMessage = mFirebaseRemoteConfig.getString(WELCOME_MESSAGE_KEY);
  JSONObject categoryListInJson = new JSONObject(welcomeMessage);

提前感谢您的回答。

这是Android Studio 3.0或更高版本上的错误。

我看到一个错误,即从默认值中选择值时,字符串中的引号被剥离.xml

您可以尝试以下两件事之一吗?

  1. 启用开发人员模式并将缓存过期时间设置为 0。然后在 Firebase 远程配置控制台上设置 JSON。然后在设备上进行抓取。这是因为错误不是从控制台获取 JSON 时出现的,而是仅在从默认 xml 中提取值时才出现的。
  2. 不要在默认使用字符串.xml JSON,而是使用一个数字 - 看看这是否有效?

谢谢

此问题有多种解决方案

1. 使用 firebaseConfig.setDefaults(Map); 设置默认配置。

2. 在文件中的字符串中使用反斜杠 () .xml双引号(")。

3. 替换

classpath 'com.android.tools.build:gradle:3.0.1' with
classpath 'com.android.tools.build:gradle:2.3.3'
and 
google() with
maven { url 'https://maven.google.com' }

4. 在 gradle.properties 中添加 android.enableAapt2 = false

最新更新