【问题标题】:How do I prevent user data from typing again firebase database? [duplicate]如何防止用户数据再次输入 firebase 数据库? [复制]
【发布时间】:2019-05-17 05:18:21
【问题描述】:

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

    }

【问题讨论】:

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


    【解决方案1】:

    如果您想检查特定用户 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-28
      相关资源
      最近更新 更多