如何从Firebase数据库中读取具有规则的数据-Android
我刚开始使用firebase,我正在做一个用户可以标记诊所预约的项目,所以我在firabase上添加了一些规则。只有所有者才能阅读和书写自己的约会。 我可以毫无问题地给菲拉巴斯写信,但我看不懂。 这是我的代码: 这就是我获取数据的方式如何从Firebase数据库中读取具有规则的数据-Android,android,Android,我刚开始使用firebase,我正在做一个用户可以标记诊所预约的项目,所以我在firabase上添加了一些规则。只有所有者才能阅读和书写自己的约会。 我可以毫无问题地给菲拉巴斯写信,但我看不懂。 这是我的代码: 这就是我获取数据的方式 Firebase ref = new Firebase(Config.FIREBASE_URL).child("Consultas"); ref.addValueEventListener(new ValueEventListener() {
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规则。我输入了答案,我忘记了两个逗号。它应该会起作用。无论如何,请看一看已经创建的规则,也许您正在使用更高级别的条件覆盖您自己的规则。例如,选中此项: