【发布时间】:2021-05-04 15:19:14
【问题描述】:
我无法更新 Firestore 中的数据。在点击 按钮数据应该在firestore中更新。一切正常 很好,除非我添加了更新编码
我的更新数据功能--
private void updatedata() {
phoneNo = getIntent().getStringExtra("_completephoneNo");
String newpassword =
Objects.requireNonNull(confirmPassword.getEditText()).getText().toString().trim();
final DocumentReference reference = firestore.collection("users").document(phoneNo);
Map<String, Object> map = new HashMap<>();
map.put("password", newpassword);
reference.update(map)
.addOnSuccessListener(aVoid -> {
Intent intent = new Intent(getApplicationContext(), loginPage.class);
Toast.makeText(getApplicationContext(), "sucessfully updated password",
Toast.LENGTH_SHORT).show();
startActivity(intent);
finish();
}).addOnFailureListener(e -> {
Intent intent = new Intent(getApplicationContext(), loginPage.class);
Toast.makeText(getApplicationContext(), "failed to updat password",
Toast.LENGTH_SHORT).show();
startActivity(intent);
finish();
});
}
logcat 显示这个
E/AndroidRuntime: 致命异常: main 进程:com.example.venatusgaming,PID:20687 java.lang.IllegalStateException:无法执行 android:onClick 的方法 在 androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:414) 在 android.view.View.performClick(View.java:7189) 在 com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:992) 在 android.view.View.performClickInternal(View.java:7166) 在 android.view.View.access$3500(View.java:819) 在 android.view.View$PerformClick.run(View.java:27688) 在 android.os.Handler.handleCallback(Handler.java:883) 在 android.os.Handler.dispatchMessage(Handler.java:100) 在 android.os.Looper.loop(Looper.java:224) 在 android.app.ActivityThread.main(ActivityThread.java:7592) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950) 引起:java.lang.reflect.InvocationTargetException 在 java.lang.reflect.Method.invoke(本机方法) 在 androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:409) 在 android.view.View.performClick(View.java:7189) 在 com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:992) 在 android.view.View.performClickInternal(View.java:7166) 在 android.view.View.access$3500(View.java:819) 在 android.view.View$PerformClick.run(View.java:27688) 在 android.os.Handler.handleCallback(Handler.java:883) 在 android.os.Handler.dispatchMessage(Handler.java:100) 在 android.os.Looper.loop(Looper.java:224) 在 android.app.ActivityThread.main(ActivityThread.java:7592) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950) 原因:java.lang.NullPointerException:提供的文档路径不能为空。 在 com.google.firebase.firestore.util.Preconditions.checkNotNull(Preconditions.java:147) 在 com.google.firebase.firestore.CollectionReference.document(CollectionReference.java:103) 在 com.example.venatusgaming.forgotPass.setnewPassword.updatedata(setnewPassword.java:108) 在 com.example.venatusgaming.forgotPass.setnewPassword.setNewPasswordBtn(setnewPassword.java:94) 在 java.lang.reflect.Method.invoke(本机方法) 在 androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:409) 在 android.view.View.performClick(View.java:7189) 在 com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:992) 在 android.view.View.performClickInternal(View.java:7166) 在 android.view.View.access$3500(View.java:819) 在 android.view.View$PerformClick.run(View.java:27688) 在 android.os.Handler.handleCallback(Handler.java:883) 在 android.os.Handler.dispatchMessage(Handler.java:100) 在 android.os.Looper.loop(Looper.java:224) 在 android.app.ActivityThread.main(ActivityThread.java:7592) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950) I/Process:发送信号。 PID:20687 SIG:9
【问题讨论】:
-
错误消息
Provided document path must not be null是说您正在传递null值以获取文档参考;在您的情况下,它是phoneNo.. 您可以通过日志/调试验证该字段吗?
标签: firebase android-studio google-cloud-firestore nullpointerexception updates