Неверный путь к полю с Firestore - PullRequest
0 голосов
/ 10 апреля 2020

У меня сегодня ошибка с Firestore, потому что я пытаюсь выбрать путь с запрещенным символом.

REF_ROOT.document(currentUser.uid).collection("records").whereField(workoutName, isEqualTo: "Open 16.5 / 14.5").getDocuments

Можно ли добавить обратную косую черту sh или что-нибудь перед sla sh (или любым другим запрещенным символом на самом деле), чтобы выполнить этот запрос?

This мой журнал:

Invalid field path (Open 16.5 / 14.5). Paths must not contain '~', '*', '/', '[', or ']'
firebase::firestore::util::ObjcThrowHandler(firebase::firestore::util::ExceptionType, char const*, char const*, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)

1 Ответ

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

Не путайте пути с данными поля, на которые они указывают.

"Open 16.5 / 14.5" - вполне допустимое значение для хранения в поле Firestore.

Ваш запрос:

REF_ROOT.document(currentUser.uid).collection("records")
                                  .whereField(workoutName, isEqualTo: "Open 16.5 / 14.5")
                                  .getDocuments

, который говорит мне, что currentUser.uid или workoutName содержит недопустимый символ, и он, скорее всего, workoutName.

Попробуйте распечатать его перед вызовом, чтобы увидеть, что печатается в консоли.

print(workoutName) //probably prints this: Open 16.5 / 14.5
REF_ROOT.document(currentUser.uid).collection("records")
                                  .whereField(workoutName, isEqualTo: "Open 16.5 / 14.5")
                                  .getDocuments
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...