【发布时间】:2018-07-03 04:19:42
【问题描述】:
我正在尝试使用下面的 firebase 查询获取用户的所有电子邮件
private void searchUserByEmail(final String searchText) {
DatabaseReference mFirebaseDatabaseReference = FirebaseDatabase.getInstance().getReference();
Query query = mFirebaseDatabaseReference.child(Constants.FB_TABLE_USERS).orderByChild(Constants.FB_EMAIL).equalTo(searchText);
query.addListenerForSingleValueEvent(new ValueEventListener() {
}}
在搜索任何不在列表中的电子邮件时,我在控制台中收到一条警告消息,例如
W/PersistentConnection: pc_0 - 使用未指定的索引。考虑将 table_users 中的 '".indexOn": "email"' 添加到您的安全和 Firebase 数据库规则中以获得更好的性能
而我在 FireBase 中的规则是
{
"rules": {
".read" : "auth != null",
".write" : "auth != null",
"table_users": {
".indexOn": ["email"]
}
}
}
【问题讨论】:
-
试试这个
".indexOn": "email" -
@Ali 是的,我也尝试过这种方式,但我没有得到 firebase 的任何回应
-
“我没有得到 firebase 的任何响应” 你的意思是没有显示警告吗?
-
你的意思是警告没有显示-->是
-
然后就是这样,你在电子邮件上做一个索引
标签: android firebase firebase-realtime-database firebase-security