【发布时间】:2020-12-29 16:53:21
【问题描述】:
现在我有了这些规则
{
"rules": {
"users":{
"$uid":{
".write": "$uid == auth.uid",
".read": "auth != null && auth.uid == $uid"
}
}
}
}
在应用程序中,我想显示所有用户的电子邮件,但没有显示任何内容。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_read);
listView = findViewById(R.id.textView);
listData = new ArrayList<>();
adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, listData);
listView.setAdapter(adapter);
mDatabase = FirebaseDatabase.getInstance().getReference();
mAuth = FirebaseAuth.getInstance();
getDatafromDB();
}
private void getDatafromDB(){
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (listData.size() > 0) listData.clear();
for (DataSnapshot ds: dataSnapshot.child("users").getChildren()){
User user = ds.getValue(User.class);
assert user != null;
listData.add(user.email);
}
adapter.notifyDataSetChanged();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
};
mDatabase.addValueEventListener(valueEventListener);
}
}
如果我写初始规则,
{
"rules": {
".write": "false",
".read": "true"
}
}
然后显示所有内容。基于此,我得出结论,我设置的规则不正确。怎么做才对?
【问题讨论】:
-
android-studio标签仅在您的问题与 IDE 相关时使用,仅仅因为您使用的是 android studio 并不意味着您应该将其作为标签添加到您的问题中,所以我已经删除了:) -
好的,现在我知道了
-
没问题,这是一个常见的错误,祝你好运找到答案,不幸的是我无能为力:)
标签: android firebase firebase-realtime-database firebase-security