如何从Firebase数据库中读取具有规则的数据-Android

如何从Firebase数据库中读取具有规则的数据-Android,android,Android,我刚开始使用firebase,我正在做一个用户可以标记诊所预约的项目,所以我在firabase上添加了一些规则。只有所有者才能阅读和书写自己的约会。 我可以毫无问题地给菲拉巴斯写信,但我看不懂。 这是我的代码: 这就是我获取数据的方式 Firebase ref = new Firebase(Config.FIREBASE_URL).child("Consultas"); ref.addValueEventListener(new ValueEventListener() {

我刚开始使用firebase,我正在做一个用户可以标记诊所预约的项目,所以我在firabase上添加了一些规则。只有所有者才能阅读和书写自己的约会。 我可以毫无问题地给菲拉巴斯写信,但我看不懂。 这是我的代码:

这就是我获取数据的方式

 Firebase ref = new Firebase(Config.FIREBASE_URL).child("Consultas");


ref.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot snapshot) {
                for (DataSnapshot postSnapshot : snapshot.getChildren()) {
                    //Getting the data from snapshot
                    Consultas consulta2 = postSnapshot.getValue(Consultas.class);
                    String  consulta1 = "Consulta de: "+consulta2.getNomeconsulta()+"\n";
                    String  medico1 = "Com o Médico: "+consulta2.getNomemedico()+"\n";
                    String  data1 = "Marcada para: "+consulta2.getHorario()+"\n\n";
                    String  time = "Marcada para: "+consulta2.getTime()+"\n\n";

                    textView1.setText(consulta1);
                    textView2.setText(medico1);
                    textView3.setText(data1);
                    textView4.setText(time);

                    progressBar.setVisibility(View.GONE);
                }
            }

            @Override
            public void onCancelled(FirebaseError firebaseError) {
                System.out.println("The read failed: " + firebaseError.getMessage());
            }
        });
这是我在firebase的规则

{
    "rules": {
      // User profiles are only readable/writable by the user who owns it
      "users": {
        "$UID": {
            ".read": "auth.uid == $UID",
          ".write": "auth.uid == $UID"
        }
      },
//         Posts can be read by the user who owns it/ written by the user who owns it.
      "Consultas": {
        "$UID": {
        ".read":  "auth.uid == $UID",
        ".write":  "auth.uid == $UID"
        }
        }
    } 
}  

感谢FirebaseRules用户
==
将代码更改为相等的值:

   {
    "rules": {
      // User profiles are only readable/writable by the user who owns it
      "users": {
        "$UID": {
            ".read": "auth.uid === $UID",
          ".write": "auth.uid === $UID",
        }
      },
//         Posts can be read by the user who owns it/ written by the user who owns it.
      "Consultas": {
        "$UID": {
        ".read":  "auth.uid === $UID",
        ".write":  "auth.uid === $UID",
        }
        }
    } 
}  

您可以在

doestextview1.setText(consulta1)中了解更多信息;textView2.setText(medico1);textView3.setText(数据1);textView4.setText(时间);仅当读取的数据为true@EudesInácio你找到解决办法了吗?是的我找到了。当用户保存约会时,它会保存在firebase上他的id下。所以路径是这样的:DatabaseReference DatabaseReference=FirebaseDatabase.getInstance().getReference().child(“约会”).child(auth.getCurrentUser().getUid());这样,用户只看到他的任命。对于这个问题,我没有使用firebase规则。我输入了答案,我忘记了两个逗号。它应该会起作用。无论如何,请看一看已经创建的规则,也许您正在使用更高级别的条件覆盖您自己的规则。例如,选中此项: