![](/img/trans.png)
[英]How to sort data from firebase with boolean value (true and false) in Flutter?
[英]how to validate firebase rule with boolean value?
我在 firebase 中设置了规则来验证是否是管理员,这是规则
"rules": {
"Users": {
"$uid": {
".read": "auth != null && $uid === auth.uid ||
(root.child('Users').child('$uid').child('admin').val() == true)",
".write": "auth != null && $uid === auth.uid ||
(root.child('Users').child('$uid').child('admin').val() == true)",
}
}
}
问题是我正在尝试从管理应用程序读取和写入,但我无法从应用程序读取和写入,因为我已经尝试过这样可以帮助我找到解决方案....?
myViewHolder.paid.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Users");
reference.child(getRef(position).getKey()).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
String postKey = getRef(position).getKey();
if (snapshot.exists()) {
Boolean isadmin = (Boolean) snapshot.child("admin").getValue();
if (isadmin == true) {
reference.child(postKey).child("adminScores").setValue(0);
Toast.makeText(view.getContext(), "Updated", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(view.getContext(), "No such data", Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(view.getContext(), "data not found", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
Toast.makeText(view.getContext(), "Errors", Toast.LENGTH_SHORT).show();
}
});
}
});
这是我的数据库结构,
我想要的解决方案是如何从 firebase 实时数据库获取数据以及从 firebase 获取数据后如何检查、读取数据并将数据写入数据库....
问题是这段代码中的child('$uid')
:
(root.child('Users').child('$uid').child('admin').val() == true)
这里的'$uid'
只是一个文字字符串,而你希望它是uid
变量的值。 要使用该值,请不要在$uid
周围加上引号:
(root.child('Users').child($uid).child('admin').val() == true)
另请参阅有关通配符捕获变量的 Firebase 文档。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.