Неверная ссылка на документ.Ссылки на документы должны иметь четное количество сегментов - PullRequest
0 голосов
/ 14 ноября 2018

Я запрашиваю коллекцию для документов, используя приведенный ниже код.Имена документов совпадают с именами устройств.Имя устройства передается в документ из API. Я получаю сообщение об ошибке, когда имя устройства содержит букву "/", например Motorola C380 / C385.Я получаю сообщение об ошибке

java.lang.IllegalArgumentException: недопустимая ссылка на документ.Ссылки на документы должны иметь четное количество сегментов, но Mobiles / Motorola C380 / C385 имеет 3

Я знаю, что получаю эту ошибку, потому что FireStore рассматривает имя C385 после косой черты как коллекцию внутри документа.Я хочу знать, как избавиться от подобных ситуаций, когда имя документа может содержать «/», нужно ли мне проверять и удалять его перед тем, как вставить в мою коллекцию, или есть какое-то лучшее решение?

firebaseFirestore.collection("Mobiles").document(response.body().get(finalI).getDeviceName())

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

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

String deviceName = response.body().get(finalI).getDeviceName().replaceAll("/", "-");

А затем просто используйте в вашей ссылке, как это:

firebaseFirestore.collection("Mobiles").document(deviceName);
0 голосов
/ 14 ноября 2018

попробуйте

response.body().get(finalI).getDeviceName().toString().replace("/","_")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...