如何从具有多个条件的firebase数据库中选择数据[重复]
Posted
技术标签:
【中文标题】如何从具有多个条件的firebase数据库中选择数据[重复]【英文标题】:how to select data from firebase database with multiple conditions [duplicate] 【发布时间】:2019-12-30 13:34:09 【问题描述】:这是我的数据库:
我正在尝试从 firebase 数据库中检索我的数据。 我的执行如下: select * from logindb where loginname='pandi' and loginpass='1234'。
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my__value);
mlist = (ListView) findViewById(R.id.mylist);
Intent intent = getIntent();
databaseReference = FirebaseDatabase.getInstance().getReference("logindb");
String search = intent.getStringExtra("mval");
databaseReference = FirebaseDatabase.getInstance().getReference();
Query query = databaseReference.child("loginname").orderByChild("loginId").equalTo(search);
query.addListenerForSingleValueEvent(new ValueEventListener()
@Override
public void onDataChange(DataSnapshot dataSnapshot)
if (dataSnapshot.exists())
// dataSnapshot is the "issue" node with all children with id 0
for (DataSnapshot issue : dataSnapshot.getChildren())
String address=issue.child("address").getValue().toString();
Toast.makeText(getApplicationContext(), address, Toast.LENGTH_SHORT).show();
@Override
public void onCancelled(DatabaseError databaseError)
Log.d(TAG, "onCancelled: "+databaseError);
);
没有收到任何数据。
此处未显示错误。
【问题讨论】:
请提供数据库结构截图。 你能说出你的search
的价值吗?
登录名是我的搜索值
android应用开发,工具为android studio
【参考方案1】:
根据您的问题,
据我所知,您想搜索用户名是 pandi 和密码 1234 的用户。
以下查询可能适合您。
在 if 条件下的这个查询中,它将返回节点的键。
Query query = databaseReference.orderByChild("loginname").equalTo(search);
query.addListenerForSingleValueEvent(new ValueEventListener()
@Override
public void onDataChange(DataSnapshot dataSnapshot)
if (dataSnapshot.exists())
for (DataSnapshot issue : dataSnapshot.getChildren())
LoginPojo pojo = dataSnapshot.getValue(LoginPojo.class);
if(pojo.getLoginpasssword().equals("1234"))
Log.e("Key", issue.getKey());
@Override
public void onCancelled(DatabaseError databaseError)
Log.d(TAG, "onCancelled: "+databaseError);
);
【讨论】:
嘿伙计,我有这种类型的评论“您的数据将在客户端下载和过滤。考虑在登录名中添加 '".indexOn": "loginId"' 到您的安全和 Firebase 数据库规则为了更好的性能“ 这个question 会帮助你 兄弟,我也读过这个文件,但我不知道如何从数据库中检索数据。 这意味着您必须在实时数据库中添加新规则 like this以上是关于如何从具有多个条件的firebase数据库中选择数据[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Swift 在 Firebase 中使用相同的关键字存储不同数据的多个实例?
如果不同的条件为真,Firebase 如何打破具有不同状态/消息的实时数据库事务?