【问题标题】:How to get data by value from firebase?如何从firebase按值获取数据?
【发布时间】:2019-11-26 23:33:54
【问题描述】:

当我有两个孩子时,我如何从 firebase 调用价值? 如果值为 Guru,则转到 DashboardGuru 如果值为 Murid,则转到 DashboardMurid Here Firebase Database 我刚得到空值

这是我的代码

 db.getReference().child(FirebaseAuth.getInstance().getCurrentUser().getUid())
                                            .addListenerForSingleValueEvent(new ValueEventListener() {
                                                @Override
                                                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                                                    Common.currentUser = dataSnapshot.getValue(Pengguna.class);
                                                    waitingDialog.dismiss();
                                                    String priv = dataSnapshot.child("Guru").getValue().toString();
                                                    if(priv.equals("Guru")){
                                                    startActivity(new Intent(MainActivity.this, DashboardGuru.class));
                                                    finish();
                                                    }
                                                    else{
                                                        startActivity(new Intent(MainActivity.this, DashboardMurid.class));
                                                        finish();
                                                    }
                                                }

                                                @Override
                                                public void onCancelled(@NonNull DatabaseError databaseError) {

                                                }
                                            });

【问题讨论】:

    标签: java android firebase


    【解决方案1】:

    我建议让一个孩子拥有像 这样的所有用户

    然后,当您想按类别选择每个时:

    query = databaseReference.child("users").orderByChild("userID")
                            .equalTo(user.getUid());
    
                    query.addListenerForSingleValueEvent(new ValueEventListener() {
                        @Override
                        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                            if(dataSnapshot.exists()){
                                for (DataSnapshot userDetails : dataSnapshot.getChildren()){
                                    UserAccount userAccount =userDetails.getValue(UserAccount.class);
    
                                    assert userAccount != null;
                                    if(userAccount.userCategory.equals("Fisher Man")){
                                        Intent startActivityForFisherMan = new Intent(LoginActivity.this, FisherManActivity.class);
                                        startActivity(startActivityForFisherMan);
                                        finish();
                                    }else{
                                        Intent startActivityForCustomer = new Intent(LoginActivity.this, CustomerMainActivity.class);
                                        startActivity(startActivityForCustomer);
                                        finish();
                                    }
                                }
    
                            }else{
                                Toast.makeText(LoginActivity.this, "Invalid User: Kindly Register", Toast.LENGTH_SHORT).show();
                            }
                        }
    

    【讨论】:

      【解决方案2】:

      dataSnapshot.child("Guru").getValue().toString() 在用户 ID 下搜索 JSON 中不存在的名为“Guru”的键。所以它返回空值。从特权是否是 Guru 的问题,然后转到 DashboardGuru 活动,如果特权是 Murid,则转到 DashboardMurid。所以更新后的代码应该是:

      String priv = dataSnapshot.child("privilege").getValue().toString();
      

      【讨论】:

        猜你喜欢
        • 2017-12-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-10
        • 1970-01-01
        • 2018-01-14
        • 1970-01-01
        相关资源
        最近更新 更多