简体   繁体   English

从Firebase数据库检索用户数据

[英]Retrieve user data from Firebase database

I have created an Android App By which user can register and login.When a user registration is successful a Name and value will created in my database for that User. 我创建了一个Android应用程序,用户可以通过该应用程序进行注册和登录。成功注册用户后,将在我的数据库中为该用户创建名称和值。 Now I want to retrieve The Data For every User separately. 现在,我想分别检索每个用户的数据。

这是我的数据库外观:

Try this: 尝试这个:

 mDatabase.child("ezzeearn").addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            Map<String, String> map = (Map<String, String>) dataSnapshot.getValue();
            String point = map.get("Points");
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
});

To retrieve the current user's data from this structure, you need two things: 要从此结构检索当前用户的数据,您需要做两件事:

  1. to know the uid of the current user 知道当前用户的uid
  2. to then read the data from the database 然后从数据库中读取数据

In code: 在代码中:

String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
FirebaseDatabase.getInstance.getReference(uid).addListenerForSingleValueEvent(new ValueEventListener() {

    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        long points = dataSnapshot.child("Points").getValue(Long.class);
     }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        throw databaseError.toException();
    }
});

for using iterator you can get the data for specific user 使用迭代器,您可以获取特定用户的数据

Iterator<String> iter = json.keys();
while (iter.hasNext()) {
    String key = iter.next();
    try {
        Object value = json.get(key);
    } catch (JSONException e) {
        // Something went wrong!
    }
}

Try to use below method : 尝试使用以下方法:

     public void getAllUsersFromFirebase() {  
    DatabaseReference UserRef = FirebaseDatabase.getInstance().getReference().child("ezzeearn");
    UserRef.keepSynced(true);
    UserRef.addValueEventListener(new ValueEventListener() {
        @Override  
        public void onDataChange(DataSnapshot dataSnapshot) {
            Iterator<DataSnapshot> dataSnapshots = dataSnapshot.getChildren().iterator();

            while (dataSnapshots.hasNext()) {
                DataSnapshot dataSnapshotChild = dataSnapshots.next();
                String resultString = (String)dataSnapshotChild.getValue();


            }  

        }  

        @Override  
        public void onCancelled(DatabaseError databaseError) {
                // for handling database error            
        }  
    });  
}  

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM