Flutter Firestore save value as string










1














I want to save a value from my Cloud Firestore as a string. I am using Flutter with Dart. I have been able to save it when building the page using MaterialepageRoute:



 MaterialPageRoute(
builder: (context) => MainScreen(
currentUserId: firebaseUser.uid,
currentUserGender: document['gender'],
currentUserPreference: document['preference'],
)),


But this isn't an option with all of my pages, so I have to look for something else. I want to get the value from my Firestore Database, and then save it as a string, since I want to:



if (currentUserGender == 'male') 
//then do something



I am able to get the currentUser. Here is a picture of my database:



https://imgur.com/KL7HX6P



Thanks.










share|improve this question


























    1














    I want to save a value from my Cloud Firestore as a string. I am using Flutter with Dart. I have been able to save it when building the page using MaterialepageRoute:



     MaterialPageRoute(
    builder: (context) => MainScreen(
    currentUserId: firebaseUser.uid,
    currentUserGender: document['gender'],
    currentUserPreference: document['preference'],
    )),


    But this isn't an option with all of my pages, so I have to look for something else. I want to get the value from my Firestore Database, and then save it as a string, since I want to:



    if (currentUserGender == 'male') 
    //then do something



    I am able to get the currentUser. Here is a picture of my database:



    https://imgur.com/KL7HX6P



    Thanks.










    share|improve this question
























      1












      1








      1







      I want to save a value from my Cloud Firestore as a string. I am using Flutter with Dart. I have been able to save it when building the page using MaterialepageRoute:



       MaterialPageRoute(
      builder: (context) => MainScreen(
      currentUserId: firebaseUser.uid,
      currentUserGender: document['gender'],
      currentUserPreference: document['preference'],
      )),


      But this isn't an option with all of my pages, so I have to look for something else. I want to get the value from my Firestore Database, and then save it as a string, since I want to:



      if (currentUserGender == 'male') 
      //then do something



      I am able to get the currentUser. Here is a picture of my database:



      https://imgur.com/KL7HX6P



      Thanks.










      share|improve this question













      I want to save a value from my Cloud Firestore as a string. I am using Flutter with Dart. I have been able to save it when building the page using MaterialepageRoute:



       MaterialPageRoute(
      builder: (context) => MainScreen(
      currentUserId: firebaseUser.uid,
      currentUserGender: document['gender'],
      currentUserPreference: document['preference'],
      )),


      But this isn't an option with all of my pages, so I have to look for something else. I want to get the value from my Firestore Database, and then save it as a string, since I want to:



      if (currentUserGender == 'male') 
      //then do something



      I am able to get the currentUser. Here is a picture of my database:



      https://imgur.com/KL7HX6P



      Thanks.







      firebase dart flutter google-cloud-firestore






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 13 '18 at 9:06









      maddeveloper123maddeveloper123

      256




      256






















          1 Answer
          1






          active

          oldest

          votes


















          0














          You have to build your models after query your user
          each get of an item in firestore results in a map of key as string and object:
          so you have to recreate your object like this. (this is an example)
          Either you can create factory methods in your entity class to create an object back from json or create a map from your object.



          class UsersEntityAdapters implements EntityAdapters<UsersEntity> 

          @override
          UsersEntity toEntity(Map<String, dynamic> map, String id)
          return new UsersEntity(id,
          map['name'],
          map['birthday'],
          map['gender'],
          map['description'],
          map['urlPhotoPublic'],
          map['urlPhotoStorage'],
          nbFaves: map['nbFaves'],
          );


          @override
          Map<String, dynamic> toMap(UsersEntity entity)
          final Map<String, dynamic> map = new Map();
          map.putIfAbsent('name', () => entity.name);
          map.putIfAbsent('birthday', () => entity.birthday);
          map.putIfAbsent('gender', () => entity.gender);
          map.putIfAbsent('description', () => entity.description);
          map.putIfAbsent('urlPhotoPublic', () => entity.urlPhotoPublic);
          map.putIfAbsent('urlPhotoStorage', () => entity.urlPhotoStorage);
          map.putIfAbsent('deviceToken', () => entity.deviceToken);
          map.putIfAbsent('nbFaves', () => entity.nbFaves);
          return map;







          share|improve this answer




















            Your Answer






            StackExchange.ifUsing("editor", function ()
            StackExchange.using("externalEditor", function ()
            StackExchange.using("snippets", function ()
            StackExchange.snippets.init();
            );
            );
            , "code-snippets");

            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "1"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53277333%2fflutter-firestore-save-value-as-string%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            You have to build your models after query your user
            each get of an item in firestore results in a map of key as string and object:
            so you have to recreate your object like this. (this is an example)
            Either you can create factory methods in your entity class to create an object back from json or create a map from your object.



            class UsersEntityAdapters implements EntityAdapters<UsersEntity> 

            @override
            UsersEntity toEntity(Map<String, dynamic> map, String id)
            return new UsersEntity(id,
            map['name'],
            map['birthday'],
            map['gender'],
            map['description'],
            map['urlPhotoPublic'],
            map['urlPhotoStorage'],
            nbFaves: map['nbFaves'],
            );


            @override
            Map<String, dynamic> toMap(UsersEntity entity)
            final Map<String, dynamic> map = new Map();
            map.putIfAbsent('name', () => entity.name);
            map.putIfAbsent('birthday', () => entity.birthday);
            map.putIfAbsent('gender', () => entity.gender);
            map.putIfAbsent('description', () => entity.description);
            map.putIfAbsent('urlPhotoPublic', () => entity.urlPhotoPublic);
            map.putIfAbsent('urlPhotoStorage', () => entity.urlPhotoStorage);
            map.putIfAbsent('deviceToken', () => entity.deviceToken);
            map.putIfAbsent('nbFaves', () => entity.nbFaves);
            return map;







            share|improve this answer

























              0














              You have to build your models after query your user
              each get of an item in firestore results in a map of key as string and object:
              so you have to recreate your object like this. (this is an example)
              Either you can create factory methods in your entity class to create an object back from json or create a map from your object.



              class UsersEntityAdapters implements EntityAdapters<UsersEntity> 

              @override
              UsersEntity toEntity(Map<String, dynamic> map, String id)
              return new UsersEntity(id,
              map['name'],
              map['birthday'],
              map['gender'],
              map['description'],
              map['urlPhotoPublic'],
              map['urlPhotoStorage'],
              nbFaves: map['nbFaves'],
              );


              @override
              Map<String, dynamic> toMap(UsersEntity entity)
              final Map<String, dynamic> map = new Map();
              map.putIfAbsent('name', () => entity.name);
              map.putIfAbsent('birthday', () => entity.birthday);
              map.putIfAbsent('gender', () => entity.gender);
              map.putIfAbsent('description', () => entity.description);
              map.putIfAbsent('urlPhotoPublic', () => entity.urlPhotoPublic);
              map.putIfAbsent('urlPhotoStorage', () => entity.urlPhotoStorage);
              map.putIfAbsent('deviceToken', () => entity.deviceToken);
              map.putIfAbsent('nbFaves', () => entity.nbFaves);
              return map;







              share|improve this answer























                0












                0








                0






                You have to build your models after query your user
                each get of an item in firestore results in a map of key as string and object:
                so you have to recreate your object like this. (this is an example)
                Either you can create factory methods in your entity class to create an object back from json or create a map from your object.



                class UsersEntityAdapters implements EntityAdapters<UsersEntity> 

                @override
                UsersEntity toEntity(Map<String, dynamic> map, String id)
                return new UsersEntity(id,
                map['name'],
                map['birthday'],
                map['gender'],
                map['description'],
                map['urlPhotoPublic'],
                map['urlPhotoStorage'],
                nbFaves: map['nbFaves'],
                );


                @override
                Map<String, dynamic> toMap(UsersEntity entity)
                final Map<String, dynamic> map = new Map();
                map.putIfAbsent('name', () => entity.name);
                map.putIfAbsent('birthday', () => entity.birthday);
                map.putIfAbsent('gender', () => entity.gender);
                map.putIfAbsent('description', () => entity.description);
                map.putIfAbsent('urlPhotoPublic', () => entity.urlPhotoPublic);
                map.putIfAbsent('urlPhotoStorage', () => entity.urlPhotoStorage);
                map.putIfAbsent('deviceToken', () => entity.deviceToken);
                map.putIfAbsent('nbFaves', () => entity.nbFaves);
                return map;







                share|improve this answer












                You have to build your models after query your user
                each get of an item in firestore results in a map of key as string and object:
                so you have to recreate your object like this. (this is an example)
                Either you can create factory methods in your entity class to create an object back from json or create a map from your object.



                class UsersEntityAdapters implements EntityAdapters<UsersEntity> 

                @override
                UsersEntity toEntity(Map<String, dynamic> map, String id)
                return new UsersEntity(id,
                map['name'],
                map['birthday'],
                map['gender'],
                map['description'],
                map['urlPhotoPublic'],
                map['urlPhotoStorage'],
                nbFaves: map['nbFaves'],
                );


                @override
                Map<String, dynamic> toMap(UsersEntity entity)
                final Map<String, dynamic> map = new Map();
                map.putIfAbsent('name', () => entity.name);
                map.putIfAbsent('birthday', () => entity.birthday);
                map.putIfAbsent('gender', () => entity.gender);
                map.putIfAbsent('description', () => entity.description);
                map.putIfAbsent('urlPhotoPublic', () => entity.urlPhotoPublic);
                map.putIfAbsent('urlPhotoStorage', () => entity.urlPhotoStorage);
                map.putIfAbsent('deviceToken', () => entity.deviceToken);
                map.putIfAbsent('nbFaves', () => entity.nbFaves);
                return map;








                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 13 '18 at 15:10









                mcflymcfly

                298211




                298211



























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53277333%2fflutter-firestore-save-value-as-string%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Top Tejano songwriter Luis Silva dead of heart attack at 64

                    ReactJS Fetched API data displays live - need Data displayed static

                    Evgeni Malkin