android - 如何从具有多个条件的firebase数据库中选择数据

标签 android firebase firebase-realtime-database

<分区>

这是我的数据库:

enter image description here

我正在尝试从 firebase 数据库中检索我的数据。 我的处决方式是: 从 logindb 中选择 *,其中 loginname='pandi' 和 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);
            }
        });

没有收到任何数据。

这里没有显示错误。

最佳答案

根据您的问题,

据我了解,您想搜索用户名为 pandi 且密码为 1234 的用户。

以下查询可能适合您。

在此查询中,如果条件它将返回节点的键。

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);
    }
});

关于android - 如何从具有多个条件的firebase数据库中选择数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57656557/

相关文章:

Android Gradle 避免 CMake 项目不必要的重建

swift - 如何在 swift 的注册页面中强制输入用户名

java - Android中如何通过参数从Firebase数据库获取数据?

带有自定义 UITableViewCell 的 iOS FirebaseUI

ios - UITableView 重复 Firebase 数据

android - 如何在 Fragment 中启动 FragmentTransaction

android - Google Play 内部测试不发送电子邮件

android - EditText 的首字母大写

firebase - Firestore可以使用一个查询更新多个符合条件的文档吗?

javascript - Cloud Functions for Firebase 在 Algolia 中索引 Firebase 数据库对象