Home > Back-end >  Firebase Firestore Getting specific fields from my document flutter
Firebase Firestore Getting specific fields from my document flutter

Time:08-04

I am trying to get some fields in my firestore collection/document. I want to display them in some places in my code.

How can i get a particular field, like maybe phoneNumber from the user's field in the document/collection.

THis is how the user's data gets stored in the firebase.

//create UsersCollection data (First level verification) == Users Profile

Future createUserData(
    String firstName,
    String lastName,
    String emailAddress,
    String phoneNumber,
    String gender
  ) async{
    return getInstance.collection("users").doc(user!.email)
      .collection("User Profile").doc(uid).set({
        "firstName" : firstName,
        "lastName" : lastName,
        "emailAddress" : emailAddress,
        "phoneNumber" : phoneNumber,
        "gender" : gender
      });
  }

How can I get the phonenUmber maybe. Or even the firstName.

CodePudding user response:

To get data from firebase you can try multiple ways

For fetching single item

var collection = FirebaseFirestore.instance.collection('users');
var docSnapshot = await collection.doc('documentIdhere').get();
if (docSnapshot.exists) {
  Map<String, dynamic>? data = docSnapshot.data();
  var value = data?['firstName']; // gets the first name
 setState((){});
}

You can also use a future builder like this

FutureBuilder<DocumentSnapshot<Map<String, dynamic>>>(
  future: collection.doc('docume tIdHere').get(),
  builder: (_, snapshot) {
    if (snapshot.hasError) return Text ('${snapshot.error}');

    if (snapshot.hasData) {
      var data = snapshot.data!.data();
      var firstName = data!['firstName']; 
      return Text('first name is $firstName');
    }

    return Center(child: CircularProgressIndicator());
  },
)

CodePudding user response:

you can try this method and store the result in list

List myListOfValue[];

List myListOfElement[];


CollectionReference deliveryList =
FirebaseFirestore.instance.collection('your Collecetion');

getData() async {

      await deliveryList.get().then((value) {
        for (var element in value.docs) {
          // you can get a specific value
          myListOfValue.add(element['your Value in FireStore']);
          // or you can get the entire element and get the value inside the 
           //element later
          myListOfElement.add(element);
       
        }
      });}
  • Related