如何在 firebase 中获取特定键的字符串
How to fetch string in particular key in firebase
我有以下 Firebase 数据:
chats
|
|
+ - - -simplelogin48simplelogin50
|
|
|
+ - - simplelogin50simplelogin48
|
|
|
+ - - -simplelogin48simplelogin50
现在我想获取包含 "simplelogin 48" 的聊天数据。可能吗?
不,Firebase 在其查询中不支持包含运算符。 Firebase 提供 queryStartingAtValue
和 queryEndingAtValue
运算符来选择一系列键,但它们都是基于键的开头(或者 属性 值或优先级,如果你已经订购了这些) .请参阅解释查询的 Firebase iOS 文档的这一部分。
因此:
[[[[ref queryOrderedByKey] queryStartingAtValue:@"simplelogin48"] queryEndingAtValue:@"simplelogin48"]
你会得到:
+ - - -simplelogin48simplelogin50
+ - - -simplelogin48simplelogin50
但是不是:
+ - - simplelogin50simplelogin48
解决这个问题的方法是创建一个所谓的 索引节点 ,在这种情况下,它只是列出每个用户的聊天 ID:
chats_by_user
|
+ - - simplelogin48
| |
| + - - simplelogin48simplelogin50
| |
| + - - simplelogin48simplelogin49
| |
| + - - simplelogin50simplelogin48
|
+ - - simplelogin49
| |
| + - - simplelogin48simplelogin49
|
+ - - simplelogin50
|
+ - - simplelogin50simplelogin48
|
+ - - simplelogin48simplelogin50
使用此结构,您只需访问 chats_by_user/simplylogin48
即可获取该用户所有聊天记录的所有引用。
我有以下 Firebase 数据:
chats
|
|
+ - - -simplelogin48simplelogin50
|
|
|
+ - - simplelogin50simplelogin48
|
|
|
+ - - -simplelogin48simplelogin50
现在我想获取包含 "simplelogin 48" 的聊天数据。可能吗?
不,Firebase 在其查询中不支持包含运算符。 Firebase 提供 queryStartingAtValue
和 queryEndingAtValue
运算符来选择一系列键,但它们都是基于键的开头(或者 属性 值或优先级,如果你已经订购了这些) .请参阅解释查询的 Firebase iOS 文档的这一部分。
因此:
[[[[ref queryOrderedByKey] queryStartingAtValue:@"simplelogin48"] queryEndingAtValue:@"simplelogin48"]
你会得到:
+ - - -simplelogin48simplelogin50
+ - - -simplelogin48simplelogin50
但是不是:
+ - - simplelogin50simplelogin48
解决这个问题的方法是创建一个所谓的 索引节点 ,在这种情况下,它只是列出每个用户的聊天 ID:
chats_by_user
|
+ - - simplelogin48
| |
| + - - simplelogin48simplelogin50
| |
| + - - simplelogin48simplelogin49
| |
| + - - simplelogin50simplelogin48
|
+ - - simplelogin49
| |
| + - - simplelogin48simplelogin49
|
+ - - simplelogin50
|
+ - - simplelogin50simplelogin48
|
+ - - simplelogin48simplelogin50
使用此结构,您只需访问 chats_by_user/simplylogin48
即可获取该用户所有聊天记录的所有引用。