【发布时间】:2017-08-10 14:00:31
【问题描述】:
我正在开发一个 Android 项目。我的火力库中有一个用户节点,我想列出一些信息,但我不想被读取 uid。我采取了措施,但我没有阅读姓名或身份等信息。我该怎么做? 我的数据库规则;
"rules": {
"users": {
"$uid": {
".read": "$uid === auth.uid",
".write": "$uid!=null && $uid === auth.uid",
"name-surname": {
".read": true,
".validate": "newData.isString() && newData.val().length < 30"
},
"status": {
".read": true,
".validate": "newData.isString()&& newData.val().length < 75"
},
"website": {
".read": true,
".validate": "newData.isString()&& newData.val().length < 80"
},
"linkedin": {
".read": true,
".validate": "newData.isString()&& newData.val().length < 80"
},
"github": {
".read": true,
".validate": "newData.isString()&& newData.val().length < 80"
}
}
}
}
我的代码部分;
DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference();
final MembersInfo member = new MembersInfo();
mDatabase.child("users").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// Is better to use a List, because you don't know the size
// of the iterator returned by dataSnapshot.getChildren() to
// initialize the array
String nameSurname = dataSnapshot.child("uid").child("name-surname").getValue(String.class);
Toast.makeText(MainActivity.this, nameSurname, Toast.LENGTH_SHORT).show();
member.NameSurname=nameSurname;
}
@Override
public void onCancelled(DatabaseError databaseError) {
Toast.makeText(MainActivity.this, databaseError.toString(), Toast.LENGTH_SHORT).show();
}
});
【问题讨论】:
-
您不想读取 uid?
-
我的意思是任何人都无法访问任何 uid。我认为状态会很危险。
标签: android firebase firebase-realtime-database