我在安卓应用程序上进行Firebase A/B测试时遇到了一些问题。 "实验中的用户数"计数似乎比该实验中的实际用户数量低约 5 倍。 实验在推出之前就开始了,已经运行了一周多,但进入它的用户数量仍然远低于此后访问该应用的唯一身份用户数量。 该实验对 100% 符合条件的用户开放,未设置任何条件或激活事件。 (我正在交叉引用来自A/B仪表板和Google Analytics的数据(
一些有用的信息:
在我们的安卓应用程序中进行远程配置的初始化代码
public void initRemoteConfig(){
// Initialize Firebase Remote Config.
FirebaseRemoteConfig remoteConfig = FirebaseRemoteConfig.getInstance();
// Define Firebase Remote Config Settings.
FirebaseRemoteConfigSettings firebaseRemoteConfigSettings =
new FirebaseRemoteConfigSettings.Builder()
.build();
// Apply config settings and default values.
remoteConfig.setConfigSettings(firebaseRemoteConfigSettings);
remoteConfig.setDefaultsAsync(RemoteConfigHelper.getDefaultValuesMap()).addOnCompleteListener(task -> {
long cacheExpiration = DateUtils.DAY_IN_MILLIS;
// If in debug on testing inside the office reduce cacheExpiration to 0
// so that each fetch goes to the server. This should not be used in release builds.
if (Tools.DEBUG || MetaDataHelper.getInstance(this).getSetting(R.string.in_office).equals(AppConsts.TRUE)) {
cacheExpiration = 0;
}
remoteConfig.fetch(cacheExpiration)
.addOnSuccessListener(aVoid -> {
// Make the fetched config available via
// FirebaseRemoteConfig get<type> calls.
remoteConfig.activate();
RemoteConfigHelper.isVideoAdUser = FirebaseRemoteConfig.getInstance().getBoolean(SHOW_VIDEO_AD_OVERVIEW);
RemoteConfigHelper.logRemoteValues();
})
.addOnFailureListener(e -> {
Crashlytics.setString(CALLBACK,"remote config fetch failed");
Crashlytics.logException(e);
// There has been an error fetching the config
});
});
Loger.d(TAG, "Remote instance ID token: " + getPrefString(R.string.pref_notification_reg_id,""));
}
此外,我们也一直在崩溃地上获得FirebaseRemoteConfigServerException,完整日志:
Non-fatal Exception: com.google.firebase.remoteconfig.FirebaseRemoteConfigServerException
Fetch failed: The user is not authorized to access the project. Please make sure you are using the API key that corresponds to your Firebase project.
com.google.firebase.remoteconfig.internal.ConfigFetchHandler.createExceptionWithGenericMessage
(收到此异常的用户数不足以解释问题(
- 知道为什么会发生这种情况吗? 我们的A/B测试在我们排序之前有点没用 吸引更多用户参与实验。
- 一般来说,使用不稳定的 Firebase 用户属性作为实验条件是一个好主意吗?(即:用户首选语言的条件反射实验(
提前致谢:)
我在更新Firebase SDK依赖项时遇到了同样的问题:403禁止。
我找到了这个自述文件,它描述了这个问题;它对我有用。
抱歉,这个问题具有误导性,当获取方法需要以秒为单位时,我输入了以毫秒为单位的提取间隔时间。