Запись данных в Firebase может работать только после того, как вы вошли в систему, но не будут работать успешно, если вы выйдете из системы и снова войдите в систему. - PullRequest
0 голосов
/ 08 июня 2018

Я пишу данные в Firebase на Android.Процесс записи может хорошо работать после того, как пользователь только что успешно вошел в систему.Я вижу, что данные были обновлены на моей консоли, и CompletionListener сработал хорошо соответственно.Однако после того, как приложение выполняет запись несколько раз, в то время как один и тот же пользователь остается в системе, он почему-то не работает, если только пользователь не вышел из системы и не вошел снова.Я не вижу свои данные на консоли и не запускаю CompletionListener в моем приложении.Вот мой код процесса записи:

new Thread(new Runnable(){

        public void run(){
            for(int  i = 0 ; i < dataBufferList.size();++i){


                myRef.push().setValue(dataBufferList.get(i), new DatabaseReference.CompletionListener() {
                    @Override
                    public void onComplete(DatabaseError databaseError, DatabaseReference dataRef) {

                        if (databaseError != null) {
                            System.out.println("Data saved : error " + databaseError.getMessage());
                        } else {
                            System.out.println("Data saved successfully.");
                        }
                    }
                });



            }
            dataBufferList.clear();
        }
    }).start();

Каждый раз, когда я сталкиваюсь с проблемой, я замечаю, что получаю сообщение журнала:

W / DynamiteModule: Local moduleКласс дескриптора для com.google.firebase.auth не найден.

Однако я всегда вызываю FirebaseUser currentUser = mAuth.getCurrentUser (); Прежде чем начать писать в Firebase,и он всегда возвращает правильного текущего пользователя.

Кроме того, я хочу, чтобы мое приложение было выполнено один раз, чтобы оставаться в системе, поэтому мне не нужно входить в систему каждый раз, когда я открываю это приложение.Это мой следующий код для достижения этой цели:

@Override
public void onStart() {
    super.onStart();
    // Check if user is signed in (non-null) and update UI accordingly.
    FirebaseUser currentUser = mAuth.getCurrentUser();
    if (currentUser != null) {
        Log.d(LOGTAG,"onStart : current user :" + currentUser.getDisplayName());
    }
    else {
        Log.d(LOGTAG,"onStart : current user : null");
    }
    currentUserName = currentUser.getDisplayName();

}

Я что-то пропустил здесь?

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