в моей базе данных есть таблица с названием Settings, а в моих правилах безопасности только два дочерних элемента могут быть доступны для пользователей без авторизации.
"Settings":{
".read": "auth != null",
".write": "root.child('Users').child(auth.uid).child('rank').val() == 3",
"$id":{
".read": "$id == 'maintenance' || $id == 'welcomeList'"
}
},
Но таким образом я не могу получить настройки, используя один запрос, как показано ниже:
settingsRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
settings = dataSnapshot.getValue(Settings.class));
}
});
Мне нужно дважды запросить, чтобы получить то, что я хочу. Есть ли другой способ сделать это? Потому что в будущем мне понадобится больше двух детей, и я не хочу, чтобы у меня было 5 разных запросов.
settingsRef.child("maintenance").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
settings.setMaintenance(dataSnapshot.getValue(Integer.class));
}
});
settingsRef.child("welcomeList").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
settings.setWelcomeList(dataSnapshot.getValue());
}
});