Menu
Who Do Is
  • Home
  • What
  • How
  • Is
  • Can
  • Are
  • Does
  • Do
  • Why
  • Who
  • Where
  • Which
  • Which
  • Should
  • Will
  • When
  • What’s
  • Did
Who Do Is

[ANSWERED] android – How to check if the document with the same id in firestore already exists

Posted on November 14, 2022

Solution 1 :

The problem is that get() is asynchronous and returns immediately before the query is complete. Your success listener will not be invoked until some time later. You get no guarantee how long that takes.

Your second bit of code is probably trying to access userExists before it was assigned in the listener, which means it will see the default value of false.

Since you don’t know how long the get() will take, you should look into using a LiveData to capture the results, and write code to observe that LiveData to know when query query completes.

Solution 2 :

You can use the .where( field, isEqualTo: query). This might be useful to you.

checkExists(String query) async {
  QuerySnapshot checker = await userRef
      .where('uid', isEqualTo: query)
      .get();

  chkr.docs.forEach((doc) {
    if (doc.exists) {
      print('Exists');
      print(doc.get('uid'));
    }else {
      print('false');
    }
  });
}

Then, if you are using a button, you can use onPressed: () => check(yourQuery).

Problem :

I have created a function in my viewModel to check if the document already exists in firestore database

fun isUserRegistered() {

    val userRef = firebaseRepository.firestoreDB.collection("users").document(firebaseRepository.userid.toString())
        userRef.get()
            .addOnSuccessListener { document ->
                if (document != null)
                    userExists = true
            }
}

if the document exists the value of the boolean userExists should change from ‘false’ to ‘true’

and in my Fragment I`m calling the function in the onActivityResultMethod

viewModel.isUserRegistered()
            if(viewModel.userExists)
                findNavController().navigate(R.id.action_startFragment_to_mainFragment)
            

the value of userExists is always ‘false’. Where did I make the mistake?

READ  [ANSWERED] android - How to set ImageView to the right side of ConstraintLayout
Powered by Inline Related Posts

Recent Posts

  • How can I play with my cat without toys?
  • What is a bag pipe band called?
  • Are Honda Civics actually fast?
  • Are Yankee candles toxic?
  • How do I pair my Michael Kors smartwatch with my Android?

Recent Comments

No comments to show.

Archives

  • January 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022

Categories

  • ¿Cómo
  • ¿Cuál
  • ¿Cuántas
  • ¿Cuánto
  • ¿Que
  • ¿Quién
  • 90” and 108” so you may have to round up to the nearest size.
  • and delete any Spotify folders from it. Once this is done
  • Android
  • Are
  • At
  • Bei
  • blink
  • C'est
  • Can
  • carbs
  • Comment
  • Did
  • Do
  • Does
  • During
  • For
  • Has
  • How
  • In
  • Is
  • Ist
  • Kann
  • Können
  • nouveau
  • On
  • or 108 inches.2020-08-03
  • Où
  • owning
  • Pourquoi
  • Puis-je
  • Quand
  • Quante
  • Quel
  • Quelle
  • Quelles
  • Quels
  • Qui
  • Should
  • Sind
  • Sollte
  • spiritual
  • tap the downward-facing arrow on the top left. A downward-facing arrow will appear underneath each song in the album; they'll turn green as the download completes.2020-07-28
  • Uncategorized
  • Wann
  • Warum
  • Was
  • Welche
  • Welcher
  • Welches
  • Welke
  • Wer
  • Were
  • What
  • What's
  • When
  • Where
  • Which
  • Who
  • Whose
  • Why
  • Wie
  • Will
  • Wo
  • Woher
  • you will receive two curtains each with the same measurements of width 66"" (168cm) x drop 54""(137cm).
  • you'll see a green downward-facing arrow next to each song.2021-02-26
©2023 Who Do Is | Powered by SuperbThemes & WordPress