Я делаю цикл на базе FireBase и новый Я не получаю данные из базы FireBase / Firestore, чтобы получить данные из моего keyValue - PullRequest
0 голосов
/ 14 июня 2019

В firebase мой документ - дата и И что проверять день за днем ​​в течение месяца (по моему документу), если есть данные, если да, дайте мне день есть данные

база данных: сбор питания -> дата смерти (дд-мм-гггг)

Без цикла, в котором он работает, он получает getNutritionFromFb (date, dateNum, Foods.BREAKFAST);

но по циклу не зайти внутрь

ты можешь посмотреть, что я делаю ...

for (int i = 0; i <= maxDay; i++) {

    if (i < 10) {
        date = "0" + i + "-" + monthFromNum + "-" + year;
        dateNum = "0" + i + "-" + monthFromNum + "-" + year;
    } else {
        date = i + "-" + monthFromNum + "-" + year;
        dateNum = i + "-" + monthFromNum + "-" + year;
    }


    getNutritionFromFb(date, dateNum, Foods.BREAKFAST);
    getNutritionFromFb(date, dateNum, Foods.LUNCH);
    getNutritionFromFb(date, dateNum, Foods.DINNER);
    getNutritionFromFb(date, dateNum, Foods.SNACK);
}


private void getNutritionFromFb(final String date, final String dateNum, final String nutritionType) {
    db.collection(Foods.NUTRITION).document(FireBaseInit.getEmailRegister()).collection(nutritionType)
            .document(date).collection(Foods.All_NUTRITION).get()
            .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                @Override
                public void onComplete(@NonNull Task<QuerySnapshot> task) {

                    if (task.isSuccessful() && Objects.requireNonNull(task.getResult()).getDocuments().size() > 0) {

                        Log.d(TAG, "have nutrition in this data: " + date);

                        SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy", Locale.US);

                        try {
                            Date mDate = sdf.parse(dateNum);
                            long timeInMilliseconds = mDate.getTime();

                            calenderEvent.addEvent(new Event(timeInMilliseconds, "Nutrition", Color.GREEN));


                        } catch (ParseException e) {
                            Log.i(TAG, "error: " + e);
                        }
                    }
                }
            })
            .addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    Log.i(TAG, "Filed receive data " + e);
                }
            });
}

У меня нет ошибки в журнале, компилятор не вошел в firebase для проверки данных

1 Ответ

0 голосов
/ 14 июня 2019

нет ли у вас журнала

if (task.isSuccessful() && Objects.requireNonNull(task.getResult()).getDocuments().size() > 0) {
         Log.d(TAG, "task is successfull ");               
    }
    else{
     Log.d(TAG, "task not successfull ");
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...