1
나는 비슷한 질문을했지만, 아는 한 자바와 관련이 없다. Firebase 데이터베이스에 연결하는 AWS 람다 함수를 호출하고 싶습니다. 문제는 Firebase에서 필요한 데이터를 얻기 전에 핸들러가 실행된다는 것입니다.AWS 람다에서 (Firebase) 콜백을 기다리는 방법은 무엇입니까?
@Override
public String handleRequest(Request input, Context context) {
try {
FileInputStream serviceAccountInputStream = new FileInputStream(FIREBASE_SERVICE_ACCOUNT_CREDENTIALS_PATH);
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredential(FirebaseCredentials.fromCertificate(serviceAccountInputStream))
.setDatabaseUrl(FIREBASE_DATABASE_URL)
.build();
FirebaseApp.initializeApp(options);
DatabaseReference ref = FirebaseDatabase
.getInstance()
.getReference("users/" + input.getUid());
ref.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
System.out.print(dataSnapshot);
// TODO: Do computations on data and return results
}
@Override
public void onCancelled(DatabaseError databaseError) {
System.out.print("Canceled");
// TODO: Return error
}
});
} catch (Exception e) {
e.printStackTrace();
}
// TODO: Return computed results
return "This could be the start of something new.";
}
Firebase 데이터베이스에서 데이터를 읽고 일부 계산을 수행하고 계산 된 결과를 사용자에게 반환해야합니다. 이것을 어떻게 할 수 있습니까? :)