我想让我的用户在我的 Firebase 实时数据库中搜索一些内容。问题是Firebase Query只允许我使用endAt()和startAt()搜索/过滤结果。例如,假设我的用户搜索“rro”,那么我的搜索视图应该生成“箭头”的建议(在我的数据库中查找后,如果它找到带有Arrow的条目)。
我自己可以在searchview中提出建议,但问题是如果提供了“rro”,则.startAt()和.endAt()无法实现/或找到任何内容。我想要像.contains()这样的过滤器;
如何在Firebase for Android中实现这一点?
制作这样的结构
- objects
- UID1:Arrow
- UID2:Rowboat
- UID3:Bow
- searchable
- arrow
- UID1
- rrow
- UID1
- row
- UID1
- UID2
- ow
- UID1
- UID2
- UID3
- w
- UID1
- UID2
- UID3
- rowboat
- UID2
- owboat
- UID2
- wboat
- UID2
- boat
- UID2
- oat
- UID2
- oa
- UID2
- a
- UID1
- UID2
- bow
-UID3
那么它很容易搜索,只需使用如下查询
FirebaseDatabase.getInstance().getReference().child("searchable").orderByKey().startAt(input).endAt(input+"~");
当您创建像箭头这样的对象时,您必须使用. updateUNICEF()在其中添加可搜索的条目。此外,当箭头更改名称时,您必须以可搜索的方式更新,我建议将所有内容转换为小写,您的搜索文本和可搜索的对象名称。
对于这种情况,我找到了一个更好的答案,不需要创建一个特殊的结构:
FirebaseDatabase.getInstance().getReference("users").orderByChild("LastName").startAt(queryText).endAt(queryText+"\uf8ff");
查询中使用的字符 \uf8ff 是 Unicode 范围中非常高的代码点(它是专用区域 [PUA] 代码)。由于它位于 Unicode 中的大多数常规字符之后,因此查询将匹配以 queryText 开头的所有值。
这样,通过“Fre”进行搜索,我可以从数据库中获得姓氏属性值为“Fred,Freddy,Frey”的记录。
最初的答案是里兹万·汗。链接:https://www.quora.com/How-would-you-search-a-Firebase-Realtime-Database-with-a-substring
当我使用jsole访问weblogic的mbean时,我只能得到一些关于jvm的信息,比如“java.lang”。但是我想得到的是关于“jdbc”、“jta”、“ejb”、“servlet”... 我想知道是否可以通过服务获得这些指标:jmx:rmi:///jndi/rmi://10.0.99.102:7997/jmxrmi使用用户名和密码。我认为我的配置很可能有错误,但我不知道问题出在哪里。 然
如何获取已设置为ImageView的可绘图文件的名称?
我需要将数据从Firebase实时数据库切换到Firestore DB。我该怎么做? 视频主要关注实时db,但我认为由于我没有激活实时db,它会转到Firestore。但我让它工作的唯一方法是启用实时db。所以我可以在Firebase中插入和读取数据,但我需要它在Firestore中。 任何帮助都是非常感激的。
一种通用方法,可以返回两个参数之间的随机整数,就像ruby使用时所做的那样。 有什么建议吗?
如果我的问题看起来很长,我道歉。我会尽量简明扼要。 问题:编写一个程序,将以千克为单位的估算重量转换为磅。如果用户输入负值,程序应要求玩家重新输入数字。 我创建了三个函数。第一个函数-返回玩家输入第二个函数-返回以磅为单位的权重第三个函数-如果权重为正,返回以磅为单位的值,或者如果值为负,要求另一个输入。 如果相同的值为正数,我的程序将返回正确的值。然而,当我输入一个负浮点数时,我的程序将永远打印
有什么方法可以简化这段代码吗?我正好有一个白色的一块,想要得到它的位置 代码: 瓦片类: 件类: