当我想通过 onBackPressed 移动到上一个 Activity (ViewData.class) 时遇到问题,但我做不到。有解决问题的方法吗?问题是:
Caused by: java.lang.NullPointerException: Provided document path must not be null.
at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:906)
at com.google.firebase.firestore.CollectionReference.document(com.google.firebase:firebase-firestore@@21.1.1:103)
at id.MuhammadRafi.StockCount.ViewData.onStart(ViewData.java:200)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1236)
at android.app.Activity.performStart(Activity.java:6006)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2288)
View 数据.java :
@Override
protected void onStart() {
super.onStart();
documentID = getIntent().getStringExtra("documentID");
collectionReference.document(documentID).collection("Products").get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if(task.isSuccessful()) {
itemsList.clear();
for(DocumentSnapshot documentSnapshot : task.getResult()) {
Items items = documentSnapshot.toObject(Items.class);
itemsList.add(items);
productListAdapter.notifyDataSetChanged();
}
}
}
});
}
主要 Activity .java :
public void onBackPressed() {
Intent moveView = new Intent(ScanActivity.this, ViewData.class);
startActivity(moveView);
finish();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case android.R.id.home:
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
最佳答案
如果你想回到之前的 Activity ,不需要
startActivity(moveView);
finish();
在您的 onBackPressed()
中。您在那里所做的是启动该 Activity 的另一个实例并发送您要发回的数据。
而是在 ViewData.class
和 MainActivity
中的 onBackPressed()
中执行 startActivityForResult()
/p>
public void onBackPressed() {
Intent moveView = getIntent();
//Here your can add whatever values you want to send back to your activity
moveView.putExtra("some_key",value)
setResult(Activity.RESULT_OK,moveView);
finish();
}
然后在您的 ViewData.class
覆盖 onActivityResult()
中,您将在其中检索当前 Activity 发送的数据。参见 Getting a Result from an Activity
您在使用 Firestore 时遇到的问题是您没有使用正确的路径进行初始化,这可能是因为您正在启动 ViewData.class
关于java - 如何防止 "Provided document path must not be null."Firestore?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58194375/