Firestore Query с предложением WhereEqualTo возвращает всегда пустой результат - PullRequest
0 голосов
/ 10 ноября 2018

Я пытаюсь получить один документ в своей коллекции с помощью Android Firebase Cloud Firestore, используя условие WhereEqualTo для одного поля, но я не знаю, почему иногда получаю пустой результат с теми же данными в моей базе данных.

Иногда результат пуст.Когда я удаляю предложение whereEqualTo, я получаю всю коллекцию.

вот мой запрос

public static Task<QuerySnapshot> getUserByEmail() {
        String email = "mireille@sombux.com";
        return UserHelper.getUsersCollection()
                .whereEqualTo("email", email)
                .get();
    }

вот мой класс пользователя

public abstract class User {
    private long id;
    private String email;
    private Date lastLogin;
    private Date birthday;
    private String country;
    private String codcountry;
    private String formation;
    private String drink;
    private String about;

    public User() {}

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public Date getLastLogin() {
        return lastLogin;
    }

    public void setLastLogin(Date lastLogin) {
        this.lastLogin = lastLogin;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public String getCountry() {
        return country;
    }

    public void setCountry(String country) {
        this.country = country;
    }

    public String getCodcountry() {
        return codcountry;
    }

    public void setCodcountry(String codcountry) {
        this.codcountry = codcountry;
    }

    public String getFormation() {
        return formation;
    }

    public void setFormation(String formation) {
        this.formation = formation;
    }

    public String getDrink() {
        return drink;
    }

    public void setDrink(String drink) {
        this.drink = drink;
    }

    public String getAbout() {
        return about;
    }

    public void setAbout(String about) {
        this.about = about;
    }

и вот мои данные

enter image description here

и я использую это так

UserHelper.getUserByEmail().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
            @Override
            public void onComplete(@NonNull Task<QuerySnapshot> task) {
                if (task.isSuccessful()) {
                    for (DocumentSnapshot document : task.getResult()) {
                        final User remoteUser = document.toObject(User.class);
                        if (remoteUser != null) {
                            Toast.makeText(context, "Find", Toast.LENGTH_SHORT).show();
                            // do something
                        }
                        return;
                    }
                    Toast.makeText(context, "Not find", Toast.LENGTH_SHORT).show();
                }
            }
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...