【问题标题】:I want to update my document fields in android studio我想在 android studio 中更新我的文档字段
【发布时间】:2021-12-28 14:51:10
【问题描述】:

这是代码

holder.btnEdit.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        final DialogPlus dialogPlus=DialogPlus.newDialog(holder.btnEdit.getContext())
                .setContentHolder(new ViewHolder(R.layout.update_popup))
                .setExpanded(Boolean.parseBoolean("true"),1200)
                .create();

        //dialogPlus.show();

        View v =dialogPlus.getHolderView();
        EditText name=v.findViewById(R.id.editName);
        EditText fname=v.findViewById(R.id.editFName);
        EditText Department=v.findViewById(R.id.editdepartment);
        EditText RollNo=v.findViewById(R.id.editroll);
        EditText phone=v.findViewById(R.id.editphone);
        EditText email=v.findViewById(R.id.editEmail);
        EditText address=v.findViewById(R.id.editAddress);
        EditText password=v.findViewById(R.id.editPassword);

        Button btnUpdate = v.findViewById(R.id.btnUpdate);


        name.setText(student.getName());
        fname.setText(student.getFName());
        Department.setText(student.getDepartment());
        RollNo.setText(student.getRollno());
        phone.setText(student.getPhone());
        email.setText(student.getEmail());
        address.setText(student.getAddress());
        password.setText(student.getPass());

        dialogPlus.show();

        btnUpdate.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Map<String,Object> map = new HashMap<>();
                map.put("Name",name.getText().toString());
                map.put("FName",fname.getText().toString());
                map.put("Department",Department.getText().toString());
                map.put("Rollno",RollNo.getText().toString());
                map.put("phone",phone.getText().toString());
                map.put("Email",email.getText().toString());
                map.put("address",address.getText().toString());
                map.put("pass",password.getText().toString());



                FirebaseUser user = mAuth.getCurrentUser();

                FirebaseFirestore firestore=FirebaseFirestore.getInstance();



                 firestore.collection("Student").document(user.getUid()).update(map)
                         .addOnSuccessListener(new OnSuccessListener<Void>() {
                             @Override
                             public void onSuccess(Void unused) {

                             }
                         });

就像在实时数据库中一样

FirebaseDatabase.getInstance().getReference().child("Student").child(getRef(Position).key)).updateChildren(map)

如何在 Firestore 中做到这一点?

【问题讨论】:

  • 该代码乍一看还不错。执行时有什么问题?
  • 收到此错误/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.husmarttrack, PID: 15195 java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.firebase.auth.FirebaseUser com.google.firebase.auth.FirebaseAuth.getCurrentUser()' 在空对象引用上
  • 按更新按钮后应用程序崩溃

标签: android firebase google-cloud-firestore


【解决方案1】:

看起来你从未初始化mAuth

你的onCreate 中可能需要这样的东西:

mAuth = FirebaseAuth.getInstance();

另请参阅getting started with Firebase Authentication on Android 上的文档,该代码来自该文档。

【讨论】:

  • Sir mAuth 已经定义了..实际上我想更新我的 firestore 数据我知道如何在 firebase 中执行但不知道如何在 firestore 中执行我添加了上面的代码但应用程序崩溃了.. .
  • 要更新 Firebase 数据,我们会这样做......||CODE______FirebaseDatabase.getInstance().getReference().child("Student").child(getRef(Position).key)) .updateChildren(map).firestore.collection("Student").document(user.getUid()).update(map)
  • 如果 mAuth 已经被初始化,你不会得到 "java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.firebase.auth.FirebaseUser com.google.firebase.auth .FirebaseAuth.getCurrentUser()' 在空对象引用上"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-13
  • 2011-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-26
相关资源
最近更新 更多