每次调用该活动时,它都会再次写入。但是我不希望他重写高级部分。如何检查用户ID以不重写数据库?如何查询数据库中的用户身份?
public void writeFirebase() {
Users users = new Users();
if (mUser.getPhotoUrl() != null) {
users.setUserProfilPic(mUser.getPhotoUrl().toString());
}
if (mUser.getDisplayName() != null) {
users.setUserName(mUser.getDisplayName());
}
users.setUserId(mUser.getUid());
users.setUserPremium("false");
users.setUserPremiumDate("");
users.setUserEmail(mUser.getEmail());
myRef.child("Users").child(users.getUserId()).setValue(users);
}
答案 0 :(得分:0)
如果要检查特定用户ID的数据是否不存在或不存在,则需要知道用户ID。
用于通过ID提取用户:
ValueEventListener userListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// Get Post object and use the values to update the UI
User user = dataSnapshot.getValue(User.class);
// **HERE YOU CAN CHECK IF THE PREMIUM VALUE HAS BEEN SET OR NOT**
}
@Override
public void onCancelled(DatabaseError databaseError) {
// Getting Post failed, log a message
Log.w(TAG, "loadPost:onCancelled", databaseError.toException());
// ...
}
};
myRef.child("Users").child(yourUserID).addListenerForSingleValueEvent(userListener);
您可以在此处获取更多详细信息:https://firebase.google.com/docs/database/android/read-and-write#read_data_once