Dart: How to Make FireStore Document Items Available in Another Class











up vote
0
down vote

favorite












I have a FireBase Service that handles fetching all of the data from Firebase Firestore.



When I need to call a specific document, I have a getId(id) method that I use, passing in the needed id.



List<Hero> hero = ;


getId(id) {
fs.Firestore store = firestore();
fs.CollectionReference ref = store.collection('items');

ref.doc(id).get().then((documentReference) {
var docRef = documentReference.data();
var id = docRef['id'];
bool pickupNeeded = docRef['pickupNeeded'];
var name = docRef['name'];
var url = docRef['id'].toString();
bool partPickup = docRef['partPickup'];
var item = Hero(id, name, pickupNeeded, url, partPickup);
hero.insert(0, item);
});
return hero;
}


Back in the class making the call, I call:



@override
void onActivate(_, RouterState current) async {
final id = RoutePaths().getId(current.parameters);
machineNumber = id.toString();
if (id != null) hero = await (_service.getId(machineNumber));
}


_service is the FirebaseService.



Back in the Hero class, I need to be able to access the individual items from the document: id, pickupNeeded, url, partPickup, etc.



How is this done being that those components are part of a list?



Or is there a better way to call the document to make the values more easily accessed individually? Thanks










share|improve this question




























    up vote
    0
    down vote

    favorite












    I have a FireBase Service that handles fetching all of the data from Firebase Firestore.



    When I need to call a specific document, I have a getId(id) method that I use, passing in the needed id.



    List<Hero> hero = ;


    getId(id) {
    fs.Firestore store = firestore();
    fs.CollectionReference ref = store.collection('items');

    ref.doc(id).get().then((documentReference) {
    var docRef = documentReference.data();
    var id = docRef['id'];
    bool pickupNeeded = docRef['pickupNeeded'];
    var name = docRef['name'];
    var url = docRef['id'].toString();
    bool partPickup = docRef['partPickup'];
    var item = Hero(id, name, pickupNeeded, url, partPickup);
    hero.insert(0, item);
    });
    return hero;
    }


    Back in the class making the call, I call:



    @override
    void onActivate(_, RouterState current) async {
    final id = RoutePaths().getId(current.parameters);
    machineNumber = id.toString();
    if (id != null) hero = await (_service.getId(machineNumber));
    }


    _service is the FirebaseService.



    Back in the Hero class, I need to be able to access the individual items from the document: id, pickupNeeded, url, partPickup, etc.



    How is this done being that those components are part of a list?



    Or is there a better way to call the document to make the values more easily accessed individually? Thanks










    share|improve this question


























      up vote
      0
      down vote

      favorite









      up vote
      0
      down vote

      favorite











      I have a FireBase Service that handles fetching all of the data from Firebase Firestore.



      When I need to call a specific document, I have a getId(id) method that I use, passing in the needed id.



      List<Hero> hero = ;


      getId(id) {
      fs.Firestore store = firestore();
      fs.CollectionReference ref = store.collection('items');

      ref.doc(id).get().then((documentReference) {
      var docRef = documentReference.data();
      var id = docRef['id'];
      bool pickupNeeded = docRef['pickupNeeded'];
      var name = docRef['name'];
      var url = docRef['id'].toString();
      bool partPickup = docRef['partPickup'];
      var item = Hero(id, name, pickupNeeded, url, partPickup);
      hero.insert(0, item);
      });
      return hero;
      }


      Back in the class making the call, I call:



      @override
      void onActivate(_, RouterState current) async {
      final id = RoutePaths().getId(current.parameters);
      machineNumber = id.toString();
      if (id != null) hero = await (_service.getId(machineNumber));
      }


      _service is the FirebaseService.



      Back in the Hero class, I need to be able to access the individual items from the document: id, pickupNeeded, url, partPickup, etc.



      How is this done being that those components are part of a list?



      Or is there a better way to call the document to make the values more easily accessed individually? Thanks










      share|improve this question















      I have a FireBase Service that handles fetching all of the data from Firebase Firestore.



      When I need to call a specific document, I have a getId(id) method that I use, passing in the needed id.



      List<Hero> hero = ;


      getId(id) {
      fs.Firestore store = firestore();
      fs.CollectionReference ref = store.collection('items');

      ref.doc(id).get().then((documentReference) {
      var docRef = documentReference.data();
      var id = docRef['id'];
      bool pickupNeeded = docRef['pickupNeeded'];
      var name = docRef['name'];
      var url = docRef['id'].toString();
      bool partPickup = docRef['partPickup'];
      var item = Hero(id, name, pickupNeeded, url, partPickup);
      hero.insert(0, item);
      });
      return hero;
      }


      Back in the class making the call, I call:



      @override
      void onActivate(_, RouterState current) async {
      final id = RoutePaths().getId(current.parameters);
      machineNumber = id.toString();
      if (id != null) hero = await (_service.getId(machineNumber));
      }


      _service is the FirebaseService.



      Back in the Hero class, I need to be able to access the individual items from the document: id, pickupNeeded, url, partPickup, etc.



      How is this done being that those components are part of a list?



      Or is there a better way to call the document to make the values more easily accessed individually? Thanks







      firebase class methods dart google-cloud-firestore






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 1 hour ago

























      asked yesterday









      W P

      428




      428





























          active

          oldest

          votes











          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',
          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%2f53265805%2fdart-how-to-make-firestore-document-items-available-in-another-class%23new-answer', 'question_page');
          }
          );

          Post as a guest





































          active

          oldest

          votes













          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes
















           

          draft saved


          draft discarded



















































           


          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53265805%2fdart-how-to-make-firestore-document-items-available-in-another-class%23new-answer', 'question_page');
          }
          );

          Post as a guest




















































































          Popular posts from this blog

          How to change which sound is reproduced for terminal bell?

          Title Spacing in Bjornstrup Chapter, Removing Chapter Number From Contents

          Can I use Tabulator js library in my java Spring + Thymeleaf project?