Firebase A/B 测试 Android 应用未显示的实时数据
Firebase A/B Testing live data not displayed for Android app
我项目的 Android 应用程序的 A/B 测试不会在主 A/B 测试页面上显示任何实时数据。显示 iOS 版本的实时数据。
我已经在几个 Android 设备上测试了实验,并且我从 FirebaseRemoteConfig 收到了正确的值,所以实验是 运行 正确的。
Here's a screenshot of what I mean
iOS 测试在左侧,Android 测试在右侧。尽管 iOS 测试仅在 50 分钟前进行,但它显示了数据,而 Android 测试是在 20 多个小时前创建的,并且没有显示实时数据。
我知道“0 Total Users”会在实验开始后显示 24 小时或更长时间,所以我对此并不担心。但是由于 iOS 测试显示了实时数据图表,我觉得很奇怪 Android 没有。
测试在设备中运行,但我也会添加一些代码。以下是我如何获取远程配置值。
final FirebaseRemoteConfig remoteConfig = FirebaseRemoteConfig.getInstance();
remoteConfig.setConfigSettings(new FirebaseRemoteConfigSettings.Builder()
.build());
HashMap<String, Object> defaults = new HashMap<>();
defaults.put(PARAMETER_NAME, DEFAULT_VALUE);
remoteConfig.setDefaults(defaults);
long cacheExpirationSeconds = BuildConfig.DEBUG ? 0
: TimeUnit.HOURS.toSeconds(12);
remoteConfig.fetch(cacheExpirationSeconds).addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
remoteConfig.activateFetched();
}
});
任何想法为什么会有所帮助,谢谢。
这似乎与最新版本的 Firebase config SDK 的问题有关。来自 release notes:
The latest release of the Firebase Android SDK for Remote Config (v16.1.2) causes A/B Testing to not work as expected. Remote Config SDK v16.1.2 does not collect user behavior for A/B Testing experiments which causes reports to show that an experiment has zero users.
If you've configured both A/B Testing and Remote Config in your project, use v16.1.0 of the Remote Config Android SDK.
我改成v16.1.0,现在显示的是实时数据。
此外,注释中提到了以下内容:
Note that downgrading Remote Config to v16.1.0 requires that the following Android SDKs (if they're used in your project with Remote Config) to be at the following versions:
com.google.firebase:firebase-ads:17.1.1
com.google.firebase:firebase-analytics:16.0.5
com.google.firebase:firebase-dynamic-links:16.1.3
com.google.firebase:firebase-invites:16.0.5
com.google.firebase:firebase-core:16.0.5
我只使用 Firebase 核心,但将版本更改为 16.0.5 会与其他 Google 库发生冲突。然后我使用了最新版本 16.0.6,远程配置和实时数据仍然可以正常工作。仅供遇到问题的其他人使用。
我项目的 Android 应用程序的 A/B 测试不会在主 A/B 测试页面上显示任何实时数据。显示 iOS 版本的实时数据。
我已经在几个 Android 设备上测试了实验,并且我从 FirebaseRemoteConfig 收到了正确的值,所以实验是 运行 正确的。
Here's a screenshot of what I mean
iOS 测试在左侧,Android 测试在右侧。尽管 iOS 测试仅在 50 分钟前进行,但它显示了数据,而 Android 测试是在 20 多个小时前创建的,并且没有显示实时数据。
我知道“0 Total Users”会在实验开始后显示 24 小时或更长时间,所以我对此并不担心。但是由于 iOS 测试显示了实时数据图表,我觉得很奇怪 Android 没有。
测试在设备中运行,但我也会添加一些代码。以下是我如何获取远程配置值。
final FirebaseRemoteConfig remoteConfig = FirebaseRemoteConfig.getInstance();
remoteConfig.setConfigSettings(new FirebaseRemoteConfigSettings.Builder()
.build());
HashMap<String, Object> defaults = new HashMap<>();
defaults.put(PARAMETER_NAME, DEFAULT_VALUE);
remoteConfig.setDefaults(defaults);
long cacheExpirationSeconds = BuildConfig.DEBUG ? 0
: TimeUnit.HOURS.toSeconds(12);
remoteConfig.fetch(cacheExpirationSeconds).addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
remoteConfig.activateFetched();
}
});
任何想法为什么会有所帮助,谢谢。
这似乎与最新版本的 Firebase config SDK 的问题有关。来自 release notes:
The latest release of the Firebase Android SDK for Remote Config (v16.1.2) causes A/B Testing to not work as expected. Remote Config SDK v16.1.2 does not collect user behavior for A/B Testing experiments which causes reports to show that an experiment has zero users.
If you've configured both A/B Testing and Remote Config in your project, use v16.1.0 of the Remote Config Android SDK.
我改成v16.1.0,现在显示的是实时数据。
此外,注释中提到了以下内容:
Note that downgrading Remote Config to v16.1.0 requires that the following Android SDKs (if they're used in your project with Remote Config) to be at the following versions:
com.google.firebase:firebase-ads:17.1.1
com.google.firebase:firebase-analytics:16.0.5
com.google.firebase:firebase-dynamic-links:16.1.3
com.google.firebase:firebase-invites:16.0.5
com.google.firebase:firebase-core:16.0.5
我只使用 Firebase 核心,但将版本更改为 16.0.5 会与其他 Google 库发生冲突。然后我使用了最新版本 16.0.6,远程配置和实时数据仍然可以正常工作。仅供遇到问题的其他人使用。