Невозможно добавить запросы в базу данных Firebase - PullRequest
0 голосов
/ 06 апреля 2020

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

DataBase Structure

код

    public class UsersFragment extends Fragment {
    private RecyclerView recyclerView;
    private UserAdapter mUserAdapter;
    private List<User> mUsers;
    String TAG = "MyTag";
    ValueEventListener mValueEventListener;

    public UsersFragment() {
        // Required empty public constructor
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment

        View view = inflater.inflate(R.layout.fragment_users, container, false);
        recyclerView = view.findViewById(R.id.recycler_view);
        recyclerView.setHasFixedSize(true);
        recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
        mUsers = new ArrayList<>();



        readUser();
        //RandomUsers();


        //query = .orderByChild("id").startAt(generateRandom()).limitToFirst(6);



        return view;
    }


    private void readUser() {

        final FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
        DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Users");


        mValueEventListener = new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                mUsers.clear();
                for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
                    User user = snapshot.getValue(User.class);
                    Log.d("TAG", "mainActivityListener called");
                    //mUsers.add(user);

                    if (!user.getId().equals(firebaseUser.getUid())) {
                        mUsers.add(user);
                    }

                }
                mUserAdapter = new UserAdapter(getContext(), mUsers, false);
                recyclerView.setAdapter(mUserAdapter);
                mUserAdapter.notifyDataSetChanged();

            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        };
        reference.addValueEventListener(mValueEventListener);
        Query query=reference.orderByChild("First").equalTo("Arjun");
        query.addValueEventListener(mValueEventListener);




    }
}

1 Ответ

1 голос
/ 06 апреля 2020

Вы используете два valueeventlistener:

reference.addValueEventListener(mValueEventListener);
Query query=reference.orderByChild("First").equalTo("Arjun");
query.addValueEventListener(mValueEventListener);

Если вы хотите фильтровать в соответствии со значением атрибута First, просто выполните следующее:

Query query=reference.orderByChild("First").equalTo("Arjun");
query.addValueEventListener(mValueEventListener);
...