如何防止用户数据再次键入Firebase数据库?

时间:2018-12-16 18:08:47

标签: android firebase firebase-realtime-database firebase-authentication

每次调用该活动时,它都会再次写入。但是我不希望他重写高级部分。如何检查用户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);

    }

1 个答案:

答案 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