setFirestoreSettings 的问题

Cap*_*ket 4 android firebase google-cloud-firestore

我对 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);

}
Run Code Online (Sandbox Code Playgroud)

但这给出了一个错误:

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.
Run Code Online (Sandbox Code Playgroud)

但是,此错误仅在我使用 setPersistanceEnabled(false) 和/或 setTimestampsInSnapshotsEnabled(true) 时发生。

如果我使用 setPersistanceEnabled(true) 和/或 setTimestampsInSnapshotsEnabled(false),应用程序就可以工作。

如果有人可以帮助我真的很感激。我已经坚持了一段时间了。

小智 5

您可能在此代码之前从不同的活动或服务执行一些数据库操作。

任何数据库操作都会使用默认设置 setPersistanceEnabled(true) 和 setTimestampsInSnapshotsEnabled(false) 初始化 Firestore。当您随后设置相同的设置时,它工作正常。当您尝试更改设置时,它会引发异常。

在我的情况下,设置是在主活动中设置的,但是当通过快捷方式调用不同的活动并执行数据库操作时,在此之后启动主活动会导致异常。