1

I want to get Date of "Friends" very 1st child/child. For this, i wrote query as enter image description here

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

in the above query, i want to specifically get date of "SQyOq80egYehjqx4sgiyeNcW8P02". How can i do that? Above query not working.

i've previously write these values by this code:

 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);


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

                    }

Recycler code:

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());
Frank van Puffelen
  • 565,676
  • 79
  • 828
  • 807
zohaib
  • 181
  • 13

2 Answers2

1

If you want to find some value using 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());
    }
});
Chirag Savsani
  • 6,020
  • 4
  • 38
  • 74
1

Assuming that SQyOq80egYehjqx4sgiyeNcW8P02 is user the id of the user that is logged in, to get value of wed5 ... 43v1, please use the following code:

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);

The output in your logcat will be:

Sept 29, 2018

If SQyOq80egYehjqx4sgiyeNcW8P02 is another random generated id, in this case please use the following reference:

DatabaseReference uidRef = rootRef.child("Friends").child("SQyOq80egYehjqx4sgiyeNcW8P02");
Alex Mamo
  • 130,605
  • 17
  • 163
  • 193