可能是因为您的代码尝试在主线程中访问 Firestore 数据库而导致应用程序崩溃。您可以使用 Firestore 提供的 API 来确保所有 Firestore 调用都从后台线程进行。下面是一个示例代码:
Firestore db = FirebaseFirestore.getInstance();
db.collection("cities").document("LA")
.get()
.addOnSuccessListener(new OnSuccessListener() {
@Override
public void onSuccess(DocumentSnapshot documentSnapshot) {
// Handle document
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// Handle error
}
});
在这个示例中,我们使用了 addOnSuccessListener()
和 addOnFailureListener()
,它们将在读取文档时自动在后台线程上执行。请注意,如果您尝试在主线程中执行读取操作,则会引发 NetworkOnMainThreadException 异常,因此必须将其包装在一个 Runnable 或 AsyncTask 中。
另外,请确保您的应用程序已正确设置 Firestore 的安全规则。如果没有设置安全规则,Firestore 将拒绝所有读取和写入请求。