1
私はいくつかの同様の質問を探していましたが、私が知る限り、どれもJava関連です。 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データベースからデータを読み込み、それに計算を行い、計算結果をユーザに返す必要があります。どうすればこれを達成できますか? :)