我可以从Firebase远程配置的默认值获取JSONObject

时间:2017-11-09 10:10:33

标签: java android json firebase firebase-remote-config

我需要从JSONObject中的远程config的默认值中提取Firebase。按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);

提前感谢您的答案。

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

我看到一个错误,当从default.xml

中选择值时,字符串的引号被剥离

你能尝试两件事吗?

  1. 启用开发人员模式并将缓存过期时间设置为0.然后在firebase远程配置控制台上设置JSON。然后在设备上进行提取。这是因为当从控制台获取JSON时,错误不是,它似乎只是从默认的xml中提取值。
  2. 不使用default.xml JSON中的字符串,而是使用数字 - 看看是否有效?
  3. 由于

答案 2 :(得分:0)

对此问题有多种解决方案

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