Проблема с setFirestoreSettings - PullRequest
0 голосов
/ 03 июля 2018

Я довольно новичок в Android и Firestore и не смог понять, как установить настройки объекта Firestore. Вот код, который я использовал:

public class MainActivity extends AppCompatActivity

FirebaseFirestore firestore;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    firestore = FirebaseFirestore.getInstance();
    FirebaseFirestoreSettings settings = new FirebaseFirestoreSettings.Builder().setTimestampsInSnapshotsEnabled(true).build();
    firestore.setFirestoreSettings(settings);

}

Но это дает ошибку:

java.lang.IllegalStateException: FirebaseFirestore has already been started and its settings can no longer be changed. You can only call setFirestoreSettings() before calling any other methods on a FirebaseFirestore object.

Однако эта ошибка возникает только при использовании setPersistanceEnabled (false) и / или setTimestampsInSnapshotsEnabled (true).

Если я использую setPersistanceEnabled (true) и / или setTimestampsInSnapshotsEnabled (false), приложение работает.

Если бы кто-нибудь мог помочь, я бы по-настоящему это оценил. Я застрял на этом какое-то время.

1 Ответ

0 голосов
/ 14 июля 2018

Вы, вероятно, выполняете некоторые операции с БД перед этим кодом из другой деятельности или службы.

Любая операция с БД инициализирует Firestore с настройками по умолчанию, setPersistanceEnabled (true) и setTimestampsInSnapshotsEnabled (false). Когда вы впоследствии установите те же настройки, он работает нормально. Когда вы пытаетесь изменить настройки, выдается исключение.

В моем случае настройки были установлены в основном действии, но когда другой вызов был вызван с помощью ярлыка и выполнил операцию с БД, запуск основного действия после этого вызвал исключение.

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