Edite los datos del perfil de usuario en Firebase con Android Studio|| Aplicación de redes sociales usando Firebase



En este video, actualizaremos los datos del perfil de usuario en la aplicación de redes sociales usando firebase 2020 y para estos muchachos usaremos transacciones para actualizar documentos en firebase firestore. Hay varias formas de escribir datos en Cloud Firestore: Establecer datos de documentos dentro de una colección, especificando explícitamente un identificador de documento. Agregar un nuevo documento a una colección. En este caso, Cloud Firestore genera automáticamente el identificador del documento. Cree un documento en blanco con un identificador generado automáticamente y asigne los datos más tarde. Esta guía explica cómo usar la configuración, agregar o actualizar documentos individuales en Cloud Firestore. Si desea escribir datos de forma masiva, consulte Transacciones y escrituras por lotes. Cloud Firestore admite operaciones atómicas para leer y escribir datos. En un conjunto de operaciones atómicas, todas las operaciones tienen éxito o ninguna se aplica. Hay dos tipos de operaciones atómicas en Cloud Firestore: Transacciones: una transacción es un conjunto de operaciones de lectura y escritura en uno o más documentos. Escrituras por lotes: una escritura por lotes es un conjunto de operaciones de escritura en uno o más documentos. Cada transacción o lote de escrituras puede escribir hasta un máximo de 500 documentos. Para conocer límites adicionales sobre las escrituras, consulte Cuotas y límites Unirse a la membresía Nivel 1 para el código fuente – Nivel 2 para Mis proyectos Archivo zip Características de la historia Uso de Firebase 2021 – Funciones de chat de Firebase 2021 – Aplicaciones de redes sociales de Firebase 2021 – Aplicación de transmisión de video de Firebase – Crear perfil de usuario – Tutorial de Cloud Firestore – Cómo ver el historial del portapapeles – Autenticación de correo electrónico de Firebase 2021 – Curso de desarrollo web 2021 – Tutorial de Firebase Exoplayer 2021 – Tutorial de almacenamiento de Firebase – Curso completo en Firebase – Grupo de Telegram – Instagram – Snapchat – Enlaces de donación de Twitter – Firebase Cloud Messaging

Compruebe también

Desarrollo de aplicaciones web móviles (Android studio)

Mi primera aplicación.. Aplicación móvil de restaurante.

22 comentarios

  1. <currentuid is not found> final DocumentReference sDoc = db.collection("user").document(currentuid); (Cannot resolve symbol 'currentuid') please help

  2. (i dont know why my code is not working and my data is not updating please help me sir)

    package com.example.social_code;

    import androidx.annotation.NonNull;

    import androidx.appcompat.app.AppCompatActivity;

    import android.os.Bundle;

    import android.view.View;

    import android.widget.Button;

    import android.widget.EditText;

    import android.widget.Toast;

    import com.google.android.gms.tasks.OnCompleteListener;

    import com.google.android.gms.tasks.OnFailureListener;

    import com.google.android.gms.tasks.OnSuccessListener;

    import com.google.android.gms.tasks.Task;

    import com.google.firebase.auth.FirebaseAuth;

    import com.google.firebase.auth.FirebaseUser;

    import com.google.firebase.database.DatabaseReference;

    import com.google.firebase.database.FirebaseDatabase;

    import com.google.firebase.firestore.DocumentReference;

    import com.google.firebase.firestore.DocumentSnapshot;

    import com.google.firebase.firestore.FirebaseFirestore;

    import com.google.firebase.firestore.FirebaseFirestoreException;

    import com.google.firebase.firestore.Transaction;

    public class UpdateProfile extends AppCompatActivity {

    Button button;

    EditText etname , etprofession , etbio, etemail, etweb;

    FirebaseDatabase database = FirebaseDatabase.getInstance();

    DatabaseReference reference;

    FirebaseFirestore db = FirebaseFirestore.getInstance();

    DocumentReference documentReference;

    String currentuid;

    // private String currentuid;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_update_profile);

    FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();

    String currentuid= user.getUid();

    documentReference = db.collection("user").document(currentuid);

    etbio = findViewById(R.id.et_bio_up);

    etemail = findViewById(R.id.et_email_up);

    etname = findViewById(R.id.et_name_up);

    etprofession = findViewById(R.id.et_profession_up);

    etweb = findViewById(R.id.et_website_up);

    button = findViewById(R.id.btn_up);

    button.setOnClickListener(new View.OnClickListener() {

    @Override

    public void onClick(View view) {

    updateProfile();

    }

    });

    }

    @Override

    protected void onStart() {

    super.onStart();

    documentReference.get()

    .addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {

    @Override

    public void onComplete(@NonNull Task<DocumentSnapshot> task) {

    if (task.getResult().exists()){

    String nameResult = task.getResult().getString("name");

    String bioResult = task.getResult().getString("bio");

    String emailResult = task.getResult().getString("email");

    String webResult = task.getResult().getString("web");

    String profResult = task.getResult().getString("prof");

    etname.setText(nameResult);

    etbio.setText(bioResult);

    etemail.setText(emailResult);

    etweb.setText(webResult);

    etprofession.setText(profResult);

    }else {

    Toast.makeText(UpdateProfile.this, "No profile", Toast.LENGTH_SHORT).show();

    }

    }

    });

    }

    private void updateProfile() {

    String name = etname.getText().toString();

    String bio = etbio.getText().toString();

    String web = etweb.getText().toString();

    String prof = etprofession.getText().toString();

    String email = etemail.getText().toString();

    final DocumentReference sDoc = db.collection("user").document(currentuid);

    db.runTransaction(new Transaction.Function<Void>() {

    @Override

    public Void apply(Transaction transaction) throws FirebaseFirestoreException {

    // DocumentSnapshot snapshot = transaction.get(sfDocRef);

    transaction.update(sDoc, "name",name );

    transaction.update(sDoc, "prof",prof );

    transaction.update(sDoc, "email",email );

    transaction.update(sDoc, "web",web );

    transaction.update(sDoc, "bio",bio );

    // Success

    return null;

    }

    }).addOnSuccessListener(new OnSuccessListener<Void>() {

    @Override

    public void onSuccess(Void aVoid) {

    Toast.makeText(UpdateProfile.this, "Updated", Toast.LENGTH_SHORT).show();

    }

    })

    .addOnFailureListener(new OnFailureListener() {

    @Override

    public void onFailure(@NonNull Exception e) {

    Toast.makeText(UpdateProfile.this, "failed", Toast.LENGTH_SHORT).show();

    }

    });

    }

    }

  3. guys for those who are having trouble with (currentuid) rewrite it with the following:

    FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();

    String currentuid = user.getUid();

    final DocumentReference sDoc = db.collection("user").document(currentuid);

  4. Hi, I'm in the same problem. How did fix?

    Rajjan said we declare before Oncreate. i'm beginner on java development.

    I declare ike this:

    public class UpdateProfile extends AppCompatActivity {

    EditText etname, etBio, etProfession, etWeb, etEmail;

    Button button;

    FirebaseDatabase database = FirebaseDatabase.getInstance();

    DatabaseReference reference;

    DocumentReference documentReference;

    FirebaseFirestore db = FirebaseFirestore.getInstance();

    String currentuid;

    Need help about declaration. Thank you, one more time.

  5. Great tutorial! ❤️ but my currentuid from onStart() isn't recognised in updateProfile() so i've defined it once again there. But when i try to update my profile it fails and i think it's because i am using different currentuid. Do you have any idea why i cant access the variable from onStart() in updateProfie() ?
    Thanks anyway! 😁

  6. Transaction doesnot make any changes at ROOT DATABASE . So then what should we need to do ? Is any option out there ?

  7. Thank you bhai You are awesome !

  8. bro i have a question regarding to the video in exact 11:27 that if i declared this line "final DocumentReference sDoc = db.collection("user").document(currentUid);" the currentUid always pop up as a red but i already declared that variable in the on Start void as i followed in the video thanks for the replay.

  9. Hi I have question regard to db.runTransaction(new Transaction.Function<Void>(), I cannot alt+enter it because it state Transaction class is read-only

    can you help me?

  10. Its showing an error in this line
    db.runTransaction(new Transaction.Function<Void>()……
    for -> .Function and .update in the transaction.update(…..) line
    What should I do??

  11. BHAIYA LIVE SCREEN SHARE KRKE KAISE DIKHAYA JATA HAI USPR VIDEO BANAIYE

  12. ydi kisi ko currentuid me error aa rha hai to ise FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();

    String currentuid = user.getUid(); oncreate se cut krke public class UpdateProfile extends AppCompatActivity isme paste krdo
    ye global declare ho jayega aur problem solve ho jayega

  13. the realtimedatabase isn't updateded with these edited profiles in "All Users" child at this part of your series, should i keep watching all the 60 parts to get that running well?

  14. Where is the source code ?

  15. thank you so much, very helpful but I have a question will the real time database be updated also?

  16. 11:26 currentuid show red error

  17. Hey, thanks for the video. Do you have any tips on if I wanted to add and update several profiles and not just one?

  18. Sir How to insert image URL into firestore database after uploading an image into firebase storage in android studio in your updateProfile.java please help

  19. Bro facing problem in "currentuid", I'm following you step by step but then also my currentuid is creating problem

  20. Bro always I get error in the db.runTransaction……….."Function" this function error is eating up my head

    and transaction update error…………only (update) is creating issue

  21. the line where the button submits the updated information to be written to firebase does not work for me. I keep getting getActivity() in red with android studio telling me it cannot resolve it. Any tips?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *