Firestore множественный whereEqualTo на вложенной HashMap - PullRequest
0 голосов
/ 06 февраля 2019

, учитывая, что множественный whereArrayContains () не работает, у меня проблемы с множественным whereEqualTo () на вложенном HashMap.

Я делаю простое приложение для чата с firebase, и в какой-то момент мне нужно определить, является ли чатдокумент из firestore существует для двух идентификаторов пользователей.Моя текущая настройка пожарного хранилища для чата:

chatId : {
    lastMessageText: string
    lastMessageTime: long
    memberIds: {
        userId1 : true
        userId2 : true
    }
}

Мой код:

    chatsCollection
        .whereEqualTo("memberIds., + currentUser.getUsername() "true") // which is memberIds.userId1
        .whereEqualTo("memberIds." + opponentUser.getUsername(), "true")
        .get()
        .addOnCompleteListener(task -> {
            if (task.isSuccessful()) {
                if (!task.getResult().isEmpty()) {
                    // some logic
                }
            } else {
                Log.d(TAG, "Error getting documents: ", task.getException());
            }
        });

, но всегда возвращает пустой результат.Я проверил мог пожарный и все там.Чего мне не хватает?

Заранее спасибо.

1 Ответ

0 голосов
/ 06 февраля 2019

Ваш код выглядит так, как будто он пытается сравнить логическое значение в базе данных со строкой.Если у вас есть поле логического типа в базе данных, вам также следует использовать значение логического типа в запросе (а не строку с кавычками вокруг него).Всегда проверяйте соответствие типов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...