在Android中使用多个条件从Firebase数据库获取数据。
在Android中使用多个条件从Firebase数据库获取数据。
我正在尝试以下代码:
Query query = FirebaseDatabase.getInstance().getReference("Current Location") .orderByChild("email_id").equalTo("pratiksiddhapura11@gmail.com") .orderByChild("date").equalTo("2019/11/18");
但是这个对我来说不起作用,并且给出了以下错误:
- 无法合并多个orderBy调用!
我想要的是email_id="pratiksiddhapura11@gmail.com"和date="2019/11/18"的用户数据。
还有其他解决方案吗?
适用于Android(JAVA)
问题:在Android中从Firebase数据库获取具有多个where条件的数据的原因以及解决方法。
原因:Firebase不支持多个orderBy调用。您可以在服务器端应用一个过滤器,在客户端应用另一个过滤器。
解决方法:在服务器端使用"email_id"过滤数据,在客户端使用"date"过滤数据。以下是一个示例实现:
Query query = FirebaseDatabase.getInstance().getReference("Current Location").orderByChild("email_id").equalTo("pratiksiddhapura11.com"); query.addValueEventListener(new ValueEventListener() { public void onDataChange( DataSnapshot dataSnapshot) { for(DataSnapshot childSnapshot: dataSnapshot.getChildren()) { YourModel yourModel = childSnapshot.getValue(YourModel.class); if(yourModel.getDate().equalsIgnoreCase("2019/11/18")) { // 这里是您所需的数据 } } } public void onCancelled( DatabaseError databaseError) { } });
希望这对您有所帮助。