Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Firebase应用程序搜索功能-使用字符串正则表达式进行查询_Ios_Swift_Firebase_Firebase Realtime Database - Fatal编程技术网

Ios Firebase应用程序搜索功能-使用字符串正则表达式进行查询

Ios Firebase应用程序搜索功能-使用字符串正则表达式进行查询,ios,swift,firebase,firebase-realtime-database,Ios,Swift,Firebase,Firebase Realtime Database,我正在将一个应用程序从Parse移植到Firebase,我以前能够使用matchesRegex进行查询,并将搜索放入“(?I)\(searchBar.text!)”。通过这样做,用户可以搜索“p”,数据库将返回(例如)“person”、“People”、“pot”等 我似乎找不到一种使用Firebase进行这样的查询的方法,Firebase允许用户搜索字符串的一部分,而Firebase则在数据库中查找子字符串 我正在使用: databaseReference.child("Schools").q

我正在将一个应用程序从Parse移植到Firebase,我以前能够使用
matchesRegex
进行查询,并将搜索放入
“(?I)\(searchBar.text!)”
。通过这样做,用户可以搜索“p”,数据库将返回(例如)“person”、“People”、“pot”等

我似乎找不到一种使用Firebase进行这样的查询的方法,Firebase允许用户搜索字符串的一部分,而Firebase则在数据库中查找子字符串

我正在使用:

databaseReference.child("Schools").queryOrderedByKey().queryEqualToValue("(?i)\(searchBar.text!)").observeSingleEventOfType(.Value, withBlock: { (snapshot) in

    for childSnapshot in snapshot.children {

        print("SANP \(childSnapshot)")

    }

    }) { (error) in

        print(error)

    }
如果我这样做,就不会打印任何内容。我知道,如果我搜索一个特定的值,该值是字符对字符的,与数据库中的值相同,那么上面的代码就可以工作


如何使用Firebase数据库中的字符串部分进行搜索?

Firebase查询中没有内置的正则表达式或类似“%…%”匹配的支持。看到了吗,所以基本上如果你的用户输入了一些随机字母,你想显示所有学校名称中都有这些字母的学校,对吧(类似谷歌搜索)?@Dravidian!就像谷歌搜索。或者,假设你在Facebook上搜索一个人,如果你输入a,它会显示所有有a或a的朋友。@DanLevy你所问的是一个推荐引擎。这有点像机器学习(人工智能:),如果你想寻找像谷歌这样的大型数据库,但对于小型数据库,我可以给你一个解决方案,但效率可能是一个问题。。。