我遇到的RemoteConfig
参数有条件的问题。在大多数情况下,我会在打开第一个应用程序时获得默认值。之后,我得到其他条件值。我的条件是来自User in random percentile
的{{1}}。我认为,永远不要将它用作默认值(因为条件覆盖了用户百分位数的100%)。我确实打电话给0 -> 10, 10 -> 20, 20 -> 30,...., 90 -> 100
,并在fetchAndActive()
之后打电话给mFirebaseRemoteConfig.getString()
。有想法吗?
答案 0 :(得分:1)
一个多星期前,我遇到了同样的问题,经过一番谷歌搜索后,我发现的唯一类似问题就是这个问题。今天,我终于找到了原因并实现了简单的解决方法。 长话短说,在Firebase SDK初始化中有一个竞争条件连接到“ FirebaseInstanceId”生成:在初始启动期间,Firebase在生成AppInstanceId之前会进行远程配置请求。由于这个后端无法应用某些与远程参数有关的条件,例如“随机百分比的用户”。 为了解决这个问题,我们需要在初始化SDK之前生成应用实例ID。因此,代码可能如下所示:
FirebaseInstanceId.getInstance().getInstanceId()
.addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
@Override
public void onComplete(@NonNull Task<InstanceIdResult> task) {
//init firebase remote config here
}
});
希望这会有所帮助。
答案 1 :(得分:0)
经过数天的搜索,但没有任何线索,我不得不采取一种肮脏,棘手的方法来解决我的问题:{s {1}}上1秒后获取并加载远程配置:
###Load data
train_labeled = pd.read_hdf("train_labeled.h5", "train")
train_unlabeled = pd.read_hdf("train_unlabeled.h5", "train")
test = pd.read_hdf("test.h5", "test")
X_labeled = np.array(train_labeled.iloc[:,1:])
X_unlabeled = np.array(train_unlabeled)
y_labeled = np.array(train_labeled.iloc[:,0])
###Impute missing values
from sklearn.neighbors import KNeighborsClassifier
neigh = KNeighborsClassifier(n_neighbors=5)
neigh.fit(X_labeled, y_labeled)
y_unlabeled = neigh.predict(X_unlabeled)
###Combine data
X = np.concatenate((X_labeled, X_unlabeled), axis=0)
y = np.concatenate((y_labeled, y_unlabeled), axis=0)
###Split train and test data
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, train_size = 0.8)
###Create model
model = tf.keras.Sequential([
layers.BatchNormalization(),
layers.Dense(80, activation='relu', input_shape=(X_train.shape[1],)),
layers.Dense(80, activation=tf.nn.relu),
layers.Dense(10, activation=tf.nn.softmax)])
model.compile(optimizer=tf.train.AdamOptimizer(0.001),
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
###Train model
model.fit(X_train, y_train, epochs=10, batch_size=20,
validation_data=(X_test, y_test))
P / s:可以,但是我不知道为什么。