我想从本机支持表情符号的swift执行Firebase查询。但是,我发现执行以~
结尾的查询时出现奇怪的行为,其中跳过了与表情符号相关的结果。以下是我要执行的查询示例。起始值为某些名称,而终止值为由~
连接的名称。我注意到,当名称以表情符号结尾时,查询中不会返回带有表情符号的名称。可以像使用Firestore中的罐子一样使用Firebase实时数据库时对表情符号执行查询吗?
Database.database()
.reference(withPath: "TagIDs")
.queryOrdered(byChild: "name")
.queryStarting(atValue: startValue)
.queryEnding(atValue: endValue)
.observeSingleEvent(of: .value, with: { (snapshot) in
…
输入名称=“家”
预期输出=“home?”
实际输出:快照为空
答案 0 :(得分:1)
根据您的描述,您似乎在搜索:
Database.database()
.reference(withPath: "TagIDs")
.queryOrdered(byChild: "name")
.queryStarting(atValue: "home")
.queryEnding(atValue: "home~")
然后期望得到"home?"
。但是?
实际上在Unicode规范中的~
之后,因此您的查询在?
之前结束。
要获取以TagIDs
开头的"home"
值的完整范围,请在"home\uf8ff"
处结束查询,其中\u{f8ff}
是Unicode中最后一个代码点的转义。 / p>