Приложение Firestore cra sh при получении данных - PullRequest
0 голосов
/ 29 января 2020

Здравствуйте, когда я хочу загрузить специфицированное iec поле inty ArrayMap onСоздание активности в приложении cra sh, и когда я хочу увидеть журнал, поле существует, но после получения данных мое приложение cra sh ниже приведен псевдокод, private void loadData () {

        mStorageRef = FirebaseStorage.getInstance().getReference("Jobs").child(FirebaseAuth.getInstance().getCurrentUser().getUid());
        CollectionReference jobList = FirebaseFirestore.getInstance().collection("Jobs");
        jobList.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
            @Override
            public void onComplete(@NonNull Task<QuerySnapshot> task) {
                if (task.isSuccessful())
                {
                    List<String> listJobss = new ArrayList<>();
                    for (DocumentSnapshot doc: task.getResult())
                    {

//                        Log.d("lissss",doc.getString("jobName"));
                        Log.d("Itwork",doc.getData().toString());
//Crash
//                        listJobss.add(doc.get("jobName").toString());

                    }
                    ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(getApplication(),android.R.layout.simple_list_item_1,listJobss);
                    list.setAdapter(arrayAdapter);
                }
            }
        });
    }

Ответы [ 2 ]

0 голосов
/ 30 января 2020

Я решил это, получив весь объект, а затем извлек желаемое поле

Данные JobsData = do c .toObject (JobsData.class); listJobss.add (data.getJobName ());

0 голосов
/ 29 января 2020

Убедитесь, что вы проверите, существует ли результат задачи, и если он не нулевой. Хотя ваша задача может быть успешной и документы могут существовать в искомой коллекции, их данные могут быть нулевыми (поскольку у вас могут быть документы без данных внутри), что может привести к сбою приложения.

if(task.isSuccessful())

{

    if (task.getResult().exists() && task.getResult() != null) {
        List<String> listJobss = new ArrayList<>();
        for (DocumentSnapshot doc : task.getResult()) {

//                        Log.d("lissss",doc.getString("jobName"));
            Log.d("Itwork", doc.getData().toString());
//Crash
//                        listJobss.add(doc.get("jobName").toString());

        }
        ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(getApplication(), android.R.layout.simple_list_item_1, listJobss);
        list.setAdapter(arrayAdapter);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...