Java 当我试图编辑一个字段时,另一个字段在Firestore数据库中设置为NULL
用户登录后,其帐户详细信息将显示在应用程序中,但用户可以编辑这些字段。他们可以更改用户名、显示名称和电话号码。我试图更改显示名称(更新用户名是另一种方法),但当我这样做时,电话号码设置为null,反之亦然。我的代码有问题吗?我是Firestore数据库的初学者Java 当我试图编辑一个字段时,另一个字段在Firestore数据库中设置为NULL,java,android,google-cloud-firestore,Java,Android,Google Cloud Firestore,用户登录后,其帐户详细信息将显示在应用程序中,但用户可以编辑这些字段。他们可以更改用户名、显示名称和电话号码。我试图更改显示名称(更新用户名是另一种方法),但当我这样做时,电话号码设置为null,反之亦然。我的代码有问题吗?我是Firestore数据库的初学者 private FirebaseFirestore dbFirebaseFirestore.getInstance(); private DocumentReference userRef; userID = FirebaseAuth.g
private FirebaseFirestore dbFirebaseFirestore.getInstance();
private DocumentReference userRef;
userID = FirebaseAuth.getInstance().getCurrentUser().getUid();
这就是我调用该方法的地方,我想告诉大家,因为当我验证display\u name是否更改时,我会将电话号码设置为null,反之亦然,但在这之前,实时数据库可以正常工作。当调用方法updateUserAccountSettings时,userRef.update(“display\u name”,displayName…)
private FirebaseFirestore dbFirebaseFirestore.getInstance();
private DocumentReference userRef;
userID = FirebaseAuth.getInstance().getCurrentUser().getUid();
正在运行userRef.update(“phone_number”,phoneNumber…)。在if条件中,其中一个值为null。由于这两个函数都可以运行,所以始终有一个值将为null。一种方法是使用If-Else条件检查值是否为null
if(displayName != null){
userRef.update("display_name", displayName
).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Log.d(TAG, "onComplete: update is succesful");
} else {
Log.d(TAG, "onComplete: update failed ");
}
}
});
}
else{
userRef.update("phone_number", phoneNumber
).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Log.d(TAG, "onComplete: update is succesful");
} else {
Log.d(TAG, "onComplete: update failed ");
}
}
});
}
if(displayName != null){
userRef.update("display_name", displayName
).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Log.d(TAG, "onComplete: update is succesful");
} else {
Log.d(TAG, "onComplete: update failed ");
}
}
});
}
else{
userRef.update("phone_number", phoneNumber
).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Log.d(TAG, "onComplete: update is succesful");
} else {
Log.d(TAG, "onComplete: update failed ");
}
}
});
}
if(!mUser.getDisplay_name().equals(displayName)){
//update displayname
mFirebaseMethods.updateUserDisplayName(displayName, null);
}
if(mUser.getPhone_number().equals(phoneNumber)){
//update phoneNumber
mFirebaseMethods.updatePhoneNumber(null, phoneNumber);
}