我正在尝试设置Firebase规则,如果$ uid等于auth.uid,则该规则将授予对R / W的访问权限。 我使用Firebase电话身份验证登录。
我正在尝试以下规则:
{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}
此规则:
{
"rules": {
"users": {
"$uid": {
".read": "$uid === auth.uid",
".write": "$uid === auth.uid"
}
}
}
}
当我尝试访问数据时出现错误(权限被拒绝)。
AppController.getInstance().userid = String.valueOf(mAuth.getCurrentUser().getUid());
Log.d("PhoneAuthuid2",AppController.getInstance().userid);
Firebase ref = new Firebase("https://xxxdatabase.firebaseio.com/users/");
ref.child(AppController.getInstance().userid).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
if (snapshot.exists()) {
final User userbilgi = snapshot.getValue(User.class);
Intent intent = new Intent(activation.this, anamenu.class);
intent.putExtra("useruid", userbilgi.getUseruid());
intent.putExtra("phonenumber",userbilgi.getPhonenumber());
intent.putExtra("userdurum", userbilgi.getUserdurum());
intent.putExtra("now", userbilgi.getNow());
intent.putExtra("lastclicktime", userbilgi.getLastclicktime());
intent.putExtra("clickcount", userbilgi.getClickcount());
intent.putExtra("totalclickcount", userbilgi.getTotalclickcount());
intent.putExtra("coincount", userbilgi.getCoincount());
intent.putExtra("satlink",getIntent().getStringExtra("satlink"));
intent.putExtra("reklink",getIntent().getStringExtra("reklink"));
startActivityForResult(intent, 1);
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
Log.d("PhoneAuthFirebase",String.valueOf(firebaseError));
}
});
我遵循Firebase的说明,并且此规则通过了模拟器。
这些规则到位后,我无法从Firebase获取带有快照的实例。
如果您能帮助解决问题,我将不胜感激。
我正在尝试模拟器授予访问权限以进行读取或写入。但不是在真实设备中。我无法从Firebase获取数据。
答案 0 :(得分:0)
我认为这是因为版本不匹配或用于它的包不同,所以它不能在 firebase 规则中使用 auth.uid