我们遇到了 AB 测试变体不成比例的问题。从理论上讲,两种变体的变体暴露程度应该几乎相同,这实际上与我们之前所做的 AB 测试效果相当好。

正如您在屏幕截图中看到的,当前总用户数为 161k,变体有 75.4k 和 85.9k。我们已经运行此测试几次,并稍微更改了代码,但每次都会出现类似的不成比例。
在运行的 AB 测试中,我们将远程配置参数“ios_show_recent_searches_v2”空字符串设置为默认值。
使用激活事件运行 ab 测试的代码如下所示:
@objc class FireBaseService: NSObject {
struct Constants {
static let recentSearchesABTestToggleKey: String = "ios_show_recent_searches_v2"
static let abTestNotAvailableKey: String = "N/A"
}
@objc class func start() {
FirebaseApp.configure()
let remoteConfig = RemoteConfig.remoteConfig()
let oldShowRecentSearches = showRecentSearches
remoteConfig.fetch(withExpirationDuration: 0.0) { (status, error) -> Void in
DispatchQueue.main.async {
if status == .success {
remoteConfig.activateFetched()
FireBaseService.notifyRecentSearchesVisiblityChangeIfNeeded(oldValue: oldShowRecentSearches)
FireBaseService.sendRecentSearchesActivationEventIfNeeded()
}
}
}
}
private class func hasConfigs(for key: String) …Run Code Online (Sandbox Code Playgroud) ab-testing ios firebase firebase-remote-config firebase-ab-testing
我正在寻找一种更好的方法将 firebase 远程配置集成到我的 Nodejs 服务器中。
基本上我有两个问题,
firebase的官方js sdk文档说remoteconfig不支持nodeJs,我想知道支持web而不支持nodeJS的原因是什么?
nodejs-quickstart使用休息端点,如果我使用这种技术来管理服务器的配置,我是否必须实现轮询?或者,还有更好的方法?
PS:环境变量不是一个选项,因为这些配置随着时间的推移而改变。
我是 Android 应用开发和 Firebase 的新手。
我想知道如何获取存储在 Firebase 远程配置中的 JSONArray 文件中的值(String 和 Int)。
我使用 Firebase Remote Config 的最终目标是将我的应用程序的版本代码和优先级与 Firebase Remote Config 中存储的版本代码和优先级进行比较,以确定应用程序更新通知的启动,但到目前为止我仍然无法获取 Remote Config 值。
我尝试使用 Volley(MainActivity2 类中的 jsonParse)解析 JSON,但它也不起作用。(错误网址错误)
我曾多次尝试实施以前的答案,但也许由于我的误解,所有这些都无济于事。
我可以从 Firebase 远程配置的默认值获取 JSONObject
FirebaseRemoteConfig getString 为空
我还阅读了这篇有趣的文章,介绍如何使用远程配置按照某些特定标准实现应用内更新通知,但不幸的是,这些代码是用 Kotlin 编写的。
https://engineering.q42.nl/android-in-app-updates/
test_json文件存储在 Firebase 远程配置中。
[
{
"versionCode": "1",
"priorityLevel": 2
},
{
"versionCode": "2",
"priorityLevel": 4
},
{
"versionCode": "3",
"priorityLevel": 1
}
]
Run Code Online (Sandbox Code Playgroud)
MainActivity2班级
remoteConfig = FirebaseRemoteConfig.getInstance();
FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
.setFetchTimeoutInSeconds(2000)
.build(); …Run Code Online (Sandbox Code Playgroud) 推送远程配置需要多长时间?我有以下代码,在网络上推送新更新后,它会继续打印 false 和旧值至少几分钟。
remoteConfig.fetchWithCompletionHandler { (status, error) -> Void in
if (status == FIRRemoteConfigFetchStatus.Success) {
print("Config fetched.")
print(self.remoteConfig.activateFetched())
print(self.remoteConfig.configValueForKey("my_key").stringValue)
} else {
print("Config not fetched.")
}
}
Run Code Online (Sandbox Code Playgroud) 我正在使用 FirebaseRemoteConfig 类的单例实例,它是使用以下 Provider 方法生成的。
@Provides
@Singleton
FirebaseRemoteConfig provideFirebaseRemoteConfig() {
final FirebaseRemoteConfig mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
.setDeveloperModeEnabled(BuildConfig.DEBUG)
.build();
mFirebaseRemoteConfig.setConfigSettings(configSettings);
mFirebaseRemoteConfig.setDefaults(R.xml.remote_config_defaults);
long cacheExpiration = 3600 * 3; // 3 hours in seconds.
if (mFirebaseRemoteConfig.getInfo().getConfigSettings().isDeveloperModeEnabled()) {
cacheExpiration = 0;
}
mFirebaseRemoteConfig.fetch(cacheExpiration)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
// Once the config is successfully fetched it must be activated before newly fetched
// values are returned.
mFirebaseRemoteConfig.activateFetched();
} else {
FirebaseCrash.log("RemoteConfig fetch …Run Code Online (Sandbox Code Playgroud) 我想从现有的Firebase项目迁移到新的Firebase项目问题是我现有的项目中有很多远程配置键和值现在我要导出所有远程配置键和值,然后导入到新的Firebase项目,而不是导入在新项目中再次编写所有内容。
有什么简单的方法吗?
我在我的应用程序中使用Firebase远程配置功能。我需要在获取请求上添加网络超时。
#if DEBUG
let expirationDuration: TimeInterval = 0
RemoteConfig.remoteConfig().configSettings = RemoteConfigSettings(developerModeEnabled: true)
#else
let expirationDuration: TimeInterval = 3600
#endif
RemoteConfig.remoteConfig().fetch(withExpirationDuration: expirationDuration) {
[weak self] (status, error) in
guard error == nil else {
print ("Uh-oh. Got an error fetching remote values \(String(describing: error))")
return
}
RemoteConfig.remoteConfig().activateFetched()
self?.fetchComplete = true
self?.loadingDoneCallback?()
}
Run Code Online (Sandbox Code Playgroud)
我能怎么做?
这边的火力地堡文档解释如何检索令牌发出请求到所需的远程配置REST API。
它提供了Python、Java 和 Node.js 的示例代码。因为没有Go 的代码,它把我送到了Google Client Library (for Go)。你也许能理解我为什么迷路了......
这些示例使用GoogleCredential Java中,ServiceAccountCredentials 在Python和google.auth.JWT在Node.js的。我在这里找不到任何这些。我不知道为什么没有明确的命名约定。
firebaseremoteconfig-gen.go:代码看起来已经实现了Firebase 文档页面试图“手动”实现的目标。比较:doc,package。
因为包的“用法示例”结束得奇怪突然,与广泛相反,我不明白如何使用它。
如果有人能告诉我如何使用它,我会得到帮助:
firebaseremoteconfigService, err := firebaseremoteconfig.New(oauthHttpClient)
Run Code Online (Sandbox Code Playgroud)
我不知道我会从哪里来oauthHttpClient。oauth2存储库中有一个包,但我面临同样的问题:
oauth2Service, err := oauth2.New(oauthHttpClient)
Run Code Online (Sandbox Code Playgroud)
我oauthHttpClient再次需要,所以这不能成为解决方案。
http.Client可以是任何东西,但我需要使用service-account.json文件进行身份验证,如此处的三个示例片段所示。
我希望有人有将 …
go google-client firebase google-cloud-platform firebase-remote-config
我有一个项目,在其中必须更改每个版本的某些参数的远程配置值。当我尝试在远程配置中设置条件时使用版本代码时,它始终显示为灰色且不可交互。
我是否缺少某些东西?除了自己添加单独的版本控制参数以外,还有其他解决方法吗?

使用 Firebase,在我获取并激活我的远程配置值后,调用configValue(forKey key: String?)会给我来自远程源的值。我知道我可以调用func configValue(forKey key: String?, source: RemoteConfigSource)或defaultValue(forKey key: String?)获取默认值。但是,如何重置激活的数据,以便调用configValue再次为我提供默认值?
此外,持久化的激活值是否会被清除?