Я использую:
- Java (клиент / сервер)
- Firebase Admin SDK (Сервер)
- Spring Framework (Сервер)
Проблема:
Я пытаюсь разработать сервер на основе Spring Framework, который бы работал вместе со службами Firebase.
Я столкнулся с проблемой с базой данных. Нет проблем с отправкой запроса от клиента на сервер, который обновит точки данных. Однако есть один, когда я хочу получить его.
SDK Firebase обрабатывает эту задачу с помощью асинхронных методов, но мне нужно иметь возможность вернуть объект через Spring Framework.
Асинхронный код, который извлекает необходимые данные из БД:
DatabaseReference ref = db.getReference("users").child(uid);
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
UserData data = dataSnapshot.getValue(UserData.class);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Контроллер на стороне сервера Spring Framework, который должен ответить (вернуть) клиенту с объектом:
@RequestMapping(value = "/retrieve", method = RequestMethod.POST)
public UserData retrieve_user_data(@RequestBody String uid) {
// TODO: I need to retrieve the object from async method and return it here.
return userData;
}
Какие у меня есть варианты, которые решат мою проблему? Буду признателен за любой совет!