Получение ошибки при использовании whereGreaterThanOrEqualTo в firestore - PullRequest
0 голосов
/ 02 мая 2020

Я получаю ошибку при использовании whereGreaterThanOrEqualTo из firebase. Я пытаюсь выполнить поиск в моей базе данных, если она начинается с соответствующих букв, вот мой код:

constructor(fireStore, rootStore) {
this._firestore = fireStore;
this._employeeInfo = this._firestore.collection('Employee');
}

getEmployeeInfo = async () => {
const employeeList = [];
const snapshot = await this._employeeInfo
    .whereGreaterThanOrEqualTo("fullName", this.fullName)
    .get()

snapshot.docs.forEach((doc) => {
    employeeList.push(doc.data());
});

return employeeList;
};

Ошибка

"TypeError: _this2._employeeInfo.whereGreaterThanOrEqualTo is not a function. (In '_this2._employeeInfo.whereGreaterThanOrEqualTo("fullName", _this2.fullName)', '_this2._employeeInfo.whereGreaterThanOrEqualTo' is undefined)"

1 Ответ

0 голосов
/ 02 мая 2020

Вы используете Javascript, поэтому вам нужно использовать его следующим образом:

this._employeeInfo.where("fullName", '>=', this.fullName)

Вот список доступных операторов сравнения с примером на разных языках: https://firebase.google.com/docs/firestore/query-data/queries#query_operators

Как указано в документации: ТОЛЬКО "Для iOS, Android и Java оператор сравнения явно назван в методе."

Примечание: если вы пытаетесь смоделировать стиль автозаполнения, вместо сравнения строк лучше использовать https://firebase.google.com/docs/reference/js/firebase.database.Query#startat.

Примерно так должно работать:

this._employeeInfo.orderBy("fullName").startAt(searchText).endAt(searchText + "\uf8ff");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...