在 Firebase firestore 中更新数据不是 working/crashing
updating data in Firebase firestore is not working/crashing
I could not be able to update the data in firestore. on clicking the
button the data should be updated in firestore. everything is working
fine except when I add updatng coading
我的更新数据功能--
私人无效更新数据(){
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.performClick 内部(View.java:7166)
在 android.view.View.access3500 美元(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.performClick 内部(View.java:7166)
在 android.view.View.access3500 美元(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)
Caused by: 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.performClick 内部(View.java:7166)
在 android.view.View.access3500 美元(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
well I found the answer and did this to solve it
map.put("密码", confirmPassword.getEditText().getText().toString().trim());
I could not be able to update the data in firestore. on clicking the button the data should be updated in firestore. everything is working fine except when I add updatng coading
我的更新数据功能--
私人无效更新数据(){
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.performClick 内部(View.java:7166) 在 android.view.View.access3500 美元(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.performClick 内部(View.java:7166) 在 android.view.View.access3500 美元(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) Caused by: 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.performClick 内部(View.java:7166) 在 android.view.View.access3500 美元(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
well I found the answer and did this to solve it
map.put("密码", confirmPassword.getEditText().getText().toString().trim());