Запрос Firebase для RecyclerView - PullRequest
       0

Запрос Firebase для RecyclerView

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

Я хочу получить Дата из " Друзья " самого первого ребенка / ребенка.Для этого я написал запрос как enter image description here

Query query = FirebaseDatabase.getInstance()
            .getReference()
            .child("Friends").child("SQyOq80egYehjqx4sgiyeNcW8P02");

в вышеупомянутом запросе, я хочу специально получить дату "SQyOq80egYehjqx4sgiyeNcW8P02".Как я могу это сделать?Выше запрос не работает.

Ранее я записывал эти значения следующим кодом:

 final String currentDate = DateFormat.getDateInstance().format(new Date());
                    mFriendDatabase.child(mCurrent_user.getUid()).child(user_id).setValue(currentDate)
                            .addOnCompleteListener(new OnCompleteListener<Void>() {
                                @Override
                                public void onComplete(@NonNull Task<Void> task) {

                                    mFriendDatabase.child(user_id).child(mCurrent_user.getUid()).setValue(currentDate)
                                            .addOnCompleteListener(new OnCompleteListener<Void>() {
                                                @Override
                                                public void onComplete(@NonNull Task<Void> task) {
                                                    mFriendReqDatabase.child(mCurrent_user.getUid()).child(user_id).removeValue().addOnSuccessListener(new OnSuccessListener<Void>() {
                                                        @Override
                                                        public void onSuccess(Void aVoid) {

                                                            mFriendReqDatabase.child(user_id).child(mCurrent_user.getUid()).removeValue().addOnSuccessListener(new OnSuccessListener<Void>() {
                                                                @Override
                                                                public void onSuccess(Void aVoid) {


                                                                    mProfileSendReqBtn.setEnabled(true);
                                                                    mCurrent_state = "friends";
                                                                    mProfileSendReqBtn.setText("UnFriend");

                                                                    mDeclineBtn.setVisibility(View.INVISIBLE);
                                                                    mDeclineBtn.setEnabled(false);


                                                                }
                                                            });
                                                        }
                                                    });
                                                }
                                            });
                                    }
                                });

                    }

Код утилизатора:

FirebaseRecyclerOptions<Friends> options =
                new FirebaseRecyclerOptions.Builder<Friends>()
                        .setQuery(query, Friends.class)
                        .build();

        Log.d("sdfsdfsdf", options.getSnapshots().toString());

        firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Friends, FriendsViewHolder>(options) {
            @Override
            public FriendsViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
                // Create a new instance of the ViewHolder, in this case we are using a custom
                // layout called R.layout.message for each item
                View view = LayoutInflater.from(parent.getContext())
                        .inflate(R.layout.adapter_users_activity_layout, parent, false);

                return new FriendsViewHolder(view);
            }

            @Override
            protected void onBindViewHolder(final FriendsViewHolder friendsViewHolder, int position, Friends friends) {
//                Log.d("sdfsdfdf", friends.getDate().toString());
                friendsViewHolder.setDate(friends.getDate());

Ответы [ 2 ]

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

Предполагая, что SQyOq80egYehjqx4sgiyeNcW8P02 является идентификатором пользователя, который вошел в систему, чтобы получить значение wed5 ... 43v1, используйте следующий код:

String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference uidRef = rootRef.child("Friends").child(uid);
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String date = ds.getValue(String.class);
            Log.d(TAG, date);
        }
    }

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

Вывод в вашем logcat будет:

Sept 29, 2018

Если SQyOq80egYehjqx4sgiyeNcW8P02 является другим случайно сгенерированным идентификатором, в этом случае используйте следующую ссылку:

DatabaseReference uidRef = rootRef.child("Friends").child("SQyOq80egYehjqx4sgiyeNcW8P02");
0 голосов
/ 29 сентября 2018

Если вы хотите найти какое-либо значение, используя Query

Query applyQuery = ref.child("Friends").orderByChild("Wed5qPTC.....").equalTo("Value for Check");
applyQuery.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for (DataSnapshot snap: dataSnapshot.getChildren()) {
            //You will get your value in snap
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        Log.e("Realtime", "onCancelled", databaseError.toException());
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...