我将Firebase集成到我的Android项目中,为不同的应用程序用户获取不同的参数值。 我做了以下事情:
输入以下代码以从应用程序登录用户:
Task resultTask = firebaseAuth.signInWithEmailAndPassword("test1@gmail.com", password);
firebaseRemoteConfig.fetch() .addOnCompleteListener(new OnCompleteListener() { @Override public void onComplete(@NonNull Task task) { if (task.isSuccessful()) { // Once the config is successfully fetched it must be activated before newly fetched // values are returned. firebaseRemoteConfig.activateFetched(); Log.d(TAG, firebaseRemoteConfig.getString("MyParameter")); } else { Log.d(TAG, "fetch firebase remote config failed. Reason = " + task.getException()); } } });
结果是我总是得到默认值: DefaultValue
我做错了什么?我错过了什么?
答案 0 :(得分:7)
经过一番调查后,我发现Firebase Analytics和Firebase身份验证是2个不同的模块,不会自动互连。
使用Firebase身份验证并未像我预期的那样自动将用户识别为特定受众群体的一部分。
我需要告诉Firebase Analytics,当前用户具有特定的用户ID,因此可以将其与相关受众进行匹配。我将以下代码添加到登录onComplete回调中:
Task<AuthResult> resultTask =
firebaseAuth.signInWithEmailAndPassword("test1@gmail.com", password);
resultTask.addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
// Task completed successfully
if (task.isSuccessful()) {
firebaseAnalytics.setUserId(task.getResult().getUser().getUid());
} else {
Log.d(TAG, "signInWithEmail firebase failed");
}
}
});
重要的一行是:
firebaseAnalytics.setUserId(task.getResult().getUser().getUid());
有些注意事项: