Я работаю над приложением для социальных сетей, где пользователи могут следить за другими пользователями. Мне нужно включить функцию пользователя блока.
Если пользователь A блокирует пользователя B, то пользователю B не разрешается просматривать профиль пользователя A и читать его данные. Те же функции, что и при блокировке пользователей в Instagram и Facebook. Я думаю, что приближаюсь, но я настроил узел в Firebase, который добавляет заблокированных пользователей.
В случае пользователя A и пользователя B база данных выглядит следующим образом:
-блокированный пользователь:
--- Пользователь A:
------ Пользователь B: true
Database.database().reference().child("blockedUser").child(currentUserId).child(userToBlock).setValue(true)
Так вот, как настроена моя база данных, так выглядят мои правила:
{
"rules": {
"users": {
"$user_id": {
"$blockedID" : {
".read": "auth != null && !root.child('blockedUser/'+$user_id+'/'+$blockedID+'/true').exists()",
".write": "$user_id === auth.uid"
}
}
}
}
}
У меня проблема с правилами. Что касается пользователя A и пользователя B, то как только пользователь B заблокирован, он не позволяет пользователю B читать любые данные в базе данных. То, чего я пытаюсь добиться, - это когда пользователь B заблокирован пользователем A, тогда это должно помешать пользователю B читать ТОЛЬКО данные пользователя A. Как я могу изменить свои правила, чтобы сделать это?