автономная база данных Firebase не работает - PullRequest
0 голосов
/ 03 мая 2018

Я хочу, чтобы мое приложение сохраняло данные локально в автономном режиме. всякий раз, когда я снова открываю приложение, пока их нет, Интернет . Должно работать

в onCreate приложения я звоню

FirebaseDatabase.getInstance().setPersistenceEnabled(true);

офлайн capablilites работают до тех пор, пока приложение запускается при наличии интернета. И если я закрою приложение и перезапущу , то данные не синхронизируются .

также пытался

keepSynched(true);

Но пока вы убиваете приложение. Потеряна связь и недоступные данные в автономном режиме . Как сделать данные о персистенции в Android

1 Ответ

0 голосов
/ 03 мая 2018

вы должны звонить FirebaseDatabase.getInstance().setPersistenceEnabled(true); в любом месте, где вы хотите, чтобы ваши восстановленные данные были сохранены локально. Поэтому вы должны создать вспомогательный класс, подобный этому:

import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;

public class FirebaseUtils {
    private static DatabaseReference mDatabaseRef;
    private static FirebaseDatabase database;
    public static DatabaseReference getDatabaseRef() {
        if (mDatabaseRef == null) {
            getDatabase();
            mDatabaseRef = database.getReference();
            // ...
        }
        return mDatabaseRef;
    }

    public static FirebaseDatabase getDatabase() {
        if (database == null) {
            database = FirebaseDatabase.getInstance();
            database.setPersistenceEnabled(true);
            // ...
        }
        return database;
    }
}

Затем в своей деятельности, фрагменте и других местах, где вы хотите выполнять свою работу с базой данных, вы инициализируете объект DatabaseReference следующим образом:

private DatabaseReference mDatabase;
private DatabaseReference mPlaceRef;

....

mDatabase = FirebaseUtils.getDatabaseRef();
mPlaceRef = mDatabase .child("places");

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