Я не понимаю, что не так с моими правилами - PullRequest
0 голосов
/ 16 октября 2019

Я настроил свои правила в базе данных RealtimeDatabase, чтобы только люди, создавшие контент, могли прочитать или обновить его, но, к сожалению, правила не работают так.

Я также пробовал другие правила с меньшей безопасностью, поэтому проблема не в моем приложении.

Это мои правила, которые не позволяют мне читать мои собственные данные.

 {
    "rules": {
    "posts": {
       "$uid": {
         ".read": "$uid == auth.uid",
         ".write": "$uid == auth.uid"
       }
     }
   }
}

Код в моем приложении.

Путь: user / uid / info Значение: imageUrl

fun getFireBaseValue(Path: String, Value: String): String {
        FirebaseDatabase.getInstance().getReference(Path).child(Value)
            .addValueEventListener(object : ValueEventListener {
                override fun onDataChange(p0: DataSnapshot) {
                    val fetchedValue = p0.value.toString()
                }

                override fun onCancelled(p0: DatabaseError) {
                }
            })
    }

Я ожидал URL, который написал ранее. Но вместо этого я получаю сообщение об ошибке: « DatabaseError: В доступе отказано ». Насколько я понимаю правила, мне разрешено читать мои собственные данные.

1 Ответ

0 голосов
/ 17 октября 2019

Если переменная Path в вашем примере кода равна user/uid/info, то правила не разрешают доступ к этому местоположению. Правила разрешают доступ для каждого пользователя только к posts/uid. Путь в ваших правилах должен соответствовать пути в вашем коде, чтобы доступ был разрешен.

...