我有一个django项目。我将Firebase引入了项目。 Firebase已创建并以JSON格式返回对象。现在,我希望通过现有用户拥有一个搜索系统,并返回一个包含列表中所有存储的用户名值的对象,然后显示所有结果。
以下是Firebase JSON对象格式的示例:
OrderedDict([
('info',
{
'bio':'jogn from the office',
'company':'MySplit',
'dob':'1993-03-23',
'first_name':'jim',
'gender':'M',
'last_name':'helpert',
'phone':'+19515394856'
} ),
('location',
{
'city':'Mis Viejo',
'state':'CA',
'street':'27806 cheller',
'zip_code':98892
} ),
('status',
{
'active':'1',
'group':'dev',
'premium':'1'
} ),
('username',
'jimhelpert' )
])
我想搜索并返回包含jim
我无法找到如何使用包含短语...
的用户名返回所有对象的查询这是view.py:
user_id = request.session['uid']
user_profile = database.child('users').child(user_id).child('profile').get()
print(user_profile.key())
print(user_profile.val())
print(user_profile)
print(type(user_profile))
parameters = {
'user_profile':user_profile.val(),
}
return render(request, 'users/user_home.html', parameters)
答案 0 :(得分:0)
以下是Firebase documentation关于搜索的说法:
Cloud Firestore不支持本机索引或搜索文本字段 在文件中。
接着说:
此外,下载整个集合以搜索客户端字段是不切实际的。
如果您的数据集非常非常小,而且您确信它永远不会增长,那么您可以放弃这种方法。
但是,我在文档中提出了使用专用搜索服务的建议。
要启用Cloud Firestore数据的全文搜索,请使用Algolia等第三方搜索服务。
或者,您可以考虑使用允许此类查询的SQL数据库。