getKeysByPrefix 没有 return 默认值,只有远程值
getKeysByPrefix does not return defaults, only remote values
Firebase 远程配置有一个方法来 return 一组键。但它只有 returns 键存在于服务器端。
(我在 remoteconfig_defaults.xml 中定义的键没有。)
使用代码:
FirebaseRemoteConfig instance = FirebaseRemoteConfig.getInstance();
instance.setDefaults(R.xml.remoteconfig_defaults);
Set<String> keysSet = instance.getKeysByPrefix("");
和xml:
<defaultsMap xmlns:android="http://schemas.android.com/apk/res/android">
<entry>
<key>loading_phrase</key>
<value>Fetching config…</value>
</entry>
...
</defaultsMap>
关于如何获取默认键的任何想法?
由于默认值在 XML 中,因此可以使用 XML-解析器来获取密钥。
public static Set<String> getDefaultKeys(Context context, @XmlRes int xmlRes) {
Set<String> keys = new HashSet<>();
XmlResourceParser xmlResourceParser = context.getResources().getXml(xmlRes);
try {
boolean isInKeyTag = false;
while (xmlResourceParser.getEventType() != XmlResourceParser.END_DOCUMENT) {
if (xmlResourceParser.getEventType() == XmlResourceParser.START_TAG) {
String tagName = xmlResourceParser.getName();
if (tagName.equals("key")) {
isInKeyTag = true;
}
}
if (xmlResourceParser.getEventType() == XmlResourceParser.END_TAG){
String tagName = xmlResourceParser.getName();
if (tagName.equals("key")){
isInKeyTag = false;
}
}
if (xmlResourceParser.getEventType() == XmlResourceParser.TEXT){
if (isInKeyTag){
String key = xmlResourceParser.getText();
keys.add(key);
}
}
xmlResourceParser.next();
}
return keys;
} catch (Exception e) {
return null;
}
}
Firebase 远程配置有一个方法来 return 一组键。但它只有 returns 键存在于服务器端。 (我在 remoteconfig_defaults.xml 中定义的键没有。)
使用代码:
FirebaseRemoteConfig instance = FirebaseRemoteConfig.getInstance();
instance.setDefaults(R.xml.remoteconfig_defaults);
Set<String> keysSet = instance.getKeysByPrefix("");
和xml:
<defaultsMap xmlns:android="http://schemas.android.com/apk/res/android">
<entry>
<key>loading_phrase</key>
<value>Fetching config…</value>
</entry>
...
</defaultsMap>
关于如何获取默认键的任何想法?
由于默认值在 XML 中,因此可以使用 XML-解析器来获取密钥。
public static Set<String> getDefaultKeys(Context context, @XmlRes int xmlRes) {
Set<String> keys = new HashSet<>();
XmlResourceParser xmlResourceParser = context.getResources().getXml(xmlRes);
try {
boolean isInKeyTag = false;
while (xmlResourceParser.getEventType() != XmlResourceParser.END_DOCUMENT) {
if (xmlResourceParser.getEventType() == XmlResourceParser.START_TAG) {
String tagName = xmlResourceParser.getName();
if (tagName.equals("key")) {
isInKeyTag = true;
}
}
if (xmlResourceParser.getEventType() == XmlResourceParser.END_TAG){
String tagName = xmlResourceParser.getName();
if (tagName.equals("key")){
isInKeyTag = false;
}
}
if (xmlResourceParser.getEventType() == XmlResourceParser.TEXT){
if (isInKeyTag){
String key = xmlResourceParser.getText();
keys.add(key);
}
}
xmlResourceParser.next();
}
return keys;
} catch (Exception e) {
return null;
}
}