Как вернуть List или Map объектов из функции onCall firebase? - PullRequest
0 голосов
/ 12 марта 2019

Я пытаюсь получить список пользователей с определенным переданным параметром (в виде фильтра), поэтому я написал несколько кодов для достижения этого (если это правильно)! :

exports.getUsersByType = functions.https.onCall((data, context)=>{
const type = data.type;
console.log('type: ' + type);

if(type == "A") {
    // return list of user A
    return admin.database().ref('/data').child(type).map();
} else if(type == "B") {
    // return list of user B
    return admin.database().ref('/data').child(type).map();
}

// return all
return admin.database().ref('/data').map();

});

в клиентском приложении. (версия для Android):

Map<String, Object> data = new HashMap<>();
            data.put("type", "A");
            data.put("push", true);
            FirebaseFunctions.getInstance().getHttpsCallable("getUsersByType ")
                    .call(data)
                    .addOnSuccessListener(new OnSuccessListener<HttpsCallableResult>() {
                        @Override
                        public void onSuccess(HttpsCallableResult httpsCallableResult) {
                            Map<String, User> users = (Map<String, User>) httpsCallableResult.getData();

                            // do something with users :) 
                        }
                    }).addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    System.out.println("onFailure: " + e.getMessage());
                }
            });

Что мне не хватает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...