我正在使用以下代码在集合中查询文档。文档名称与设备名称相同。设备名称是从API传递到文档的,当设备名称包含字母“ /”(如Motorola C380 / C385)时,我得到一个错误。 我收到错误
java.lang.IllegalArgumentException:无效的文档引用。 文档引用必须具有偶数个段,但是 手机/摩托罗拉C380 / C385具有3
我知道我收到此错误,因为FireStore将斜线后的名称C385视为文档内的集合。我想知道当文档名称可以包含“ /”时如何摆脱这种情况,在将其插入我的收藏夹之前应该检查并删除它,还是有更好的解决方案?
firebaseFirestore.collection("Mobiles").document(response.body().get(finalI).getDeviceName())
答案 0 :(得分:1)
尝试
response.body().get(finalI).getDeviceName().toString().replace("/","_")
答案 1 :(得分:1)
我能想到的最简单的方法是,在将数据添加到数据库中以找到禁止的/
符号并将其替换为允许的符号之前,假设-
(减号)。 / p>
String deviceName = response.body().get(finalI).getDeviceName().replaceAll("/", "-");
然后像这样简单地在您的引用中使用:
firebaseFirestore.collection("Mobiles").document(deviceName);