выборка данных из базы данных без использования первичного ключа таблицы - PullRequest
0 голосов
/ 03 сентября 2018

Я хочу получить сообщения, опубликованные в данный момент зарегистрированным пользователем. Но с текущим кодом все сообщения получают. Как получить ожидаемые данные с помощью идентификатора пользователя из таблицы клиентов?

post_id является первичным ключом таблицы Customer, а не customerid(uid).

enter image description here

Ответы [ 2 ]

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

Попробуй вот так,

Шаг 1. Получите правильный дочерний узел и запросите его, получив текущий зарегистрированный пользовательский uid: -

  String currentUser = FirebaseAuth.getInstance().getCurrentUser().getUid();

  DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference().child("customers").orderByChild("customerId").equalTo(currentLoginId).addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            Iterator<DataSnapshot> dataSnapshots = dataSnapshot.getChildren().iterator();
            List<Customers> customers = new ArrayList<>();
            while (dataSnapshots.hasNext()) {
                DataSnapshot dataSnapshotChild = dataSnapshots.next();
                Customers user = dataSnapshotChild.getValue(Customer.class);
            }
        }
        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });
0 голосов
/ 03 сентября 2018

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

FirebaseUser user =FirebaseAuth.getInstance().getCurrentUser(); 
Query reference;

                       reference = FirebaseDatabase.getInstance().
                       getReference("customers").orderByChild("customerId").equalTo(user.getUid());


                       reference.addListenerForSingleValueEvent(new 
                       ValueEventListener() {
                       @Override
                       public void onDataChange(DataSnapshot dataSnapshot) {
                       for(DataSnapshot datas: dataSnapshot.getChildren()){
                       String 
                         customerId =datas.child("customerId").getValue().toString();

                       String 
                         customerName =datas.child("customerName").getValue().toString();

                       String 
                         phone =datas.child("phone").getValue().toString();


                      }
                    }

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

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