Как получить все данные из базы данных Android Firebase databaseRef-> userID-> uniqueKey - PullRequest
0 голосов
/ 03 ноября 2018

Это база данных Firebase:

ExchangeItemsData: -> ссылка

lhmuj6n3g6Su1rv7XJLq5tV62yr2 -> userId

-LQQ7scByWcswW2VIPM5 -> UniqueKey вставляется с помощью .push (). GetKey ();

// ниже приведены данные под уникальным ключом

exchangeProductName: "Pen"

ImageUrl: «https://firebasestoragse.googleapdfis.codfm/v04df/b/dbin..."

PHONENO: 5465464

productDesc: "Б"

ProductName: "Gelpen"

идентификатор пользователя: "Lhmuj6n3g6Su1rv7XJLq5tV62yr2"

Мне нужно показать все данные каждого пользователя в этой ссылке ExchangeItemsData. Я пробовал много способов, но мне не удалось. Если кто-нибудь может помочь мне здесь, это было бы так мило с вашей стороны.

Спасибо заранее.

Ответы [ 2 ]

0 голосов
/ 04 ноября 2018

Чтобы получить все те значения, которые принадлежат всем пользователям, используйте следующие строки кода:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference ref = rootRef.child("ExchangeItemsData");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot dSnapshot : dataSnapshot.getChildren()) {
            for(DataSnapshot ds : dSnapshot.getChildren()) {
                String imageUrl = ds.child("imageUrl").getValue(String.class);
                String phoneNo = ds.child("phoneNo").getValue(String.class);
                String productDesc = ds.child("productDesc").getValue(String.class);
                String productName = ds.child("productName").getValue(String.class);
                String userID = ds.child("userID").getValue(String.class);
                Log.d(TAG, productName);
            }
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d(TAG, databaseError.getMessage());
    }
};
ref.addListenerForSingleValueEvent(valueEventListener);

В logcat выводятся все названия продуктов всех продуктов всех пользователей.

0 голосов
/ 03 ноября 2018

Попробуйте этот код, чтобы получить значения из вашей базы данных

public class Demo extends Activity{
FirebaseAuth mAuth;
String currentUId;
DatabaseReference usersDb;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_search);

    mAuth=FirebaseAuth.getInstance();
    currentUId=mAuth.getUid();        
    DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("ExchangeItemsData");

    ref.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            if(dataSnapshot.exists() && dataSnapshot.hasChildren()){
                for (DataSnapshot userId : dataSnapshot.getChildren()) {
                    if(!userId.getKey().equals(currentUId)) {
                        usersDb.child(userId).addListenerForSingleValueEvent(new ValueEventListener() {
                            @Override
                            public void onDataChange(DataSnapshot dataSnapshot1) {
                                if(dataSnapshot1.hasChildren()){
                                    for (DataSnapshot userKey : dataSnapshot1.getChildren()) {

                                        String exchangeProductName = dataSnapshot1.child(userKey).child("exchangeProductName").getValue().toString();
                                        String imageUrl = dataSnapshot1.child(userKey).child("imageUrl").getValue().toString();
                                        String phoneNo = dataSnapshot1.child(userKey).child("phoneNo").getValue().toString();
                                        String productDesc = dataSnapshot1.child(userKey).child("productDesc").getValue().toString();
                                        String productName = dataSnapshot1.child(userKey).child("productName").getValue().toString();
                                        String userID = dataSnapshot1.child(userKey).child("userID").getValue().toString();

                                        //From here do whatever you want to do with those values
                                }      
                            }
                        }

                            @Override
                            public void onCancelled(DatabaseError databaseError) {

                            }
                        });
                    }
                }
            }
        }
    }
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...