当前位置: 首页 > 知识库问答 >
问题:

如何在多个条件下从firebase数据库中选择数据[重复]

桂浩言
2023-03-14

这是我的数据库:

我试图检索我的数据从Firebase数据库.我的执行喜欢:选择*从logindb其中loginname='潘迪'和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);
            }
        });

没有收到任何数据。

这里没有显示错误。

共有1个答案

岳奇逸
2023-03-14

根据你的问题,,

据我所知,您希望搜索用户名为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);
    }
});
 类似资料:
  • 其中mDatabase是对Firebase数据库的引用,而num是用于检索随机问题的随机值。我已经为4个选项重复了上述代码a 4次,但当我有2个选项时,如上面提到的和数据库结构中所示,我的应用程序停止工作。 我们将非常感谢所有的帮助。

  • 如果数据库中的数据为是或否,如何选中复选框,我尝试使用attr函数,但没有成功 这是我的html

  • 我目前在一个论坛网站上工作,有一个向上投票系统。然而,有一些烦人的,可能是句法错误困扰着我。我说的是这段代码。 null 谢谢

  • 问题内容: 这个问题已经在这里有了答案 : 如何使用Django获取两条随机记录 (6个答案) 3年前关闭。 问题答案: 请参阅order_by docs 。还要注意,这种方法无法很好地扩展(实际上,它的扩展确实非常,非常糟糕)。当您有大量数据时,请参见此SO答案,以获得更好的方式来处理随机选择。

  • 如您所知,我们可以使用如下attach命令从多个数据库中进行选择: 然后通过使用光标,我们可以从中进行选择。 通过使用Android Room,我可以如何做到这一点?是否有附件或类似命令来执行此操作?

  • 我首先构建了一个ListView,它包含多个没有Firebase的TextViews,并且运行良好(注意:我将数据存储在字符串数组中)。然后,我创建了一个ListView(ArrayAdapter)和一个带有Firebase的TextView,它也运行良好(注意:我将数据存储在ArrayList中)。但是一旦我将这两个项目合并在一起,它就不起作用了(注意:这个项目中存在多个TextView,但我现

  • 我试图创建一个简单的程序,从用户的名字,手机号码和电子邮件地址,然后把数据在Firebase实时数据库。 有3个输入框和一个按钮,按一下就可以完成上面的操作。代码如下: 我这样设置了消防基地: