Как мне сравнить данные в базе данных? - PullRequest
0 голосов
/ 22 апреля 2020

Мой макет Firebase

[1]: https://i.stack.imgur.com/7JThb.png

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

public class AccountManagement extends AppCompatActivity implements View.OnClickListener {

    private FirebaseAuth firebaseAuth;
    private DatabaseReference mDatabase, aDatabase;

    Button btLogout;
    ImageButton IbtHome;
    TextView tvAbout;
    ArrayList<RestaurantDetails> alRestaurantDetails, alFavorites = new ArrayList<>();
    RecyclerView rvFavourites, rvFavouritesRecommendations;
    SearchAdapter.RecyclerViewOnClicklistener listener;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_account_management);

        firebaseAuth = FirebaseAuth.getInstance();
        mDatabase = FirebaseDatabase.getInstance().getReference("Users/" + firebaseAuth.getUid());
        aDatabase = FirebaseDatabase.getInstance().getReference().child("Restaurant");

        IbtHome = findViewById(R.id.HomeAccountManagementBt);
        tvAbout = findViewById(R.id.AboutTV);
        btLogout = findViewById(R.id.LogoutBT);

        rvFavourites = findViewById(R.id.rvAccountManagementFavourites);
        rvFavouritesRecommendations = findViewById(R.id.rvFaovuritesRecommendationV);


        //Loads Data onto screen.
        mDatabase.addValueEventListener(new ValueEventListener() {
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                if (dataSnapshot.exists()) {
                    HashMap<String, Object> dataMap = (HashMap<String, Object>) dataSnapshot.getValue();
                    try {
                        String fname = String.valueOf(dataMap.get("First Name"));
                        String sname = String.valueOf(dataMap.get("Second Name"));
                        String dob = String.valueOf(dataMap.get("DOB"));
                        String address = String.valueOf(dataMap.get("Address"));
                        String email = String.valueOf(dataMap.get("Email"));
                        String diet = String.valueOf(dataMap.get("Diet"));

                        tvAbout.setText("Name: " + fname + " " + sname + "\nDate of Birth: " + dob + "\nAddress: " + address + "\nEmail: " + email + "\nDiet Requirements: " + diet);
                    } catch (ClassCastException err) {
                        Toast.makeText(getApplicationContext(), "Some Error", Toast.LENGTH_LONG).show();
                    }
                }
            }

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

            }
        });

        if (aDatabase != null) {
            aDatabase.addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                    if (dataSnapshot.exists()) {
                        for (DataSnapshot ds : dataSnapshot.getChildren()) {
                            alRestaurantDetails.add(ds.getValue(RestaurantDetails.class));

                        }
                        listener = new SearchAdapter.RecyclerViewOnClicklistener() {
                            @Override
                            public void onClick(View v, int position) {
                                Intent intent = new Intent(getApplicationContext(), RestaurantScreen.class);
                                intent.putExtra("RestaurantName", alRestaurantDetails.get(position).getRestaurantName());
                                intent.putExtra("RestaurantType", alRestaurantDetails.get(position).getRestaurantType());
                                intent.putExtra("RestaurantMain", alRestaurantDetails.get(position).getRestaurantMain());
                                startActivity(intent);
                            }
                        };
                        SearchAdapter saSearchAdapter = new SearchAdapter(alRestaurantDetails, listener);
                        rvFavourites.setAdapter(saSearchAdapter);
                        rvFavouritesRecommendations.setAdapter(saSearchAdapter);
                    }
                }

                @Override
                public void onCancelled(@NonNull DatabaseError databaseError) {
                    Toast.makeText(AccountManagement.this, databaseError.getMessage(), Toast.LENGTH_LONG).show();
                }
            });
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...