Включение автономных возможностей хранит только часть объекта в Firebase - PullRequest
0 голосов
/ 28 июня 2018

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

enter image description here

При сохранении в базе данных я проверяю, что пользователь и все его поля инициализированы, а не равны нулю или не определены.

Все работало нормально, прежде чем пытаться включить автономные функции, следуя этой документации, теперь я добавил эту строку, как объяснено в документации в основном упражнении:

FirebaseDatabase.getInstance().setPersistenceEnabled(true);

и приложение работает нормально в автономном режиме большую часть времени, но иногда приложение вылетает с NullPointerException при получении списка пользователей, я проверяю базу данных и нахожу пользователя только с двумя полями; instanceId и Id, остальные поля отсутствуют. Я не знаю, почему это происходит, но, безусловно, проблема заключается в поддержке автономных возможностей.

Я бы очень признателен за любую помощь, которую я искал несколько дней, чтобы найти решение. Спасибо!

1 Ответ

0 голосов
/ 28 июня 2018

Надеюсь, это сработает для вас.

FirebaseDatabase.getInstance().setPersistenceEnabled(true);

Поместите строку выше в методе класса приложения onCreate(). если не создан, создается так

import android.app.Application;

public class App extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        FirebaseDatabase.getInstance().setPersistenceEnabled(true);
    }
}

И назовите этот класс в Манифесте вот так,

 <application
        android:name=".App"
        ......
             />
...