Класс данных Flutter, созданный базой данных Firebase - PullRequest
0 голосов
/ 13 сентября 2018

Могу ли я узнать, как создать класс данных с использованием базы данных Firebase в флаттере, и данные будут загружены сразу на первой странице приложения?

enter image description here

    import 'package:dnow/model/company.dart';
    import 'package:firebase_database/firebase_database.dart';

    class RepoData {

      static final Company bawp = new Company(
          name: 'King',
          about: 'Selling Food',
          backdropPhoto: 'assets/hk.jpg',

          shop: <Shop>[
            new Shop(
                shopName: 'ABC',
                thumbnail: 'assets/daofang.png',
                tel: "88776655",
                address: '23 Daisy street, Sydney'),

            new Shop(
                shopName: 'KKK',
                thumbnail: 'assets/fefew.png',
                tel: "88776655",
                address: '131 Man street, Sydney'),


          ],
          location: 'Sydney',
          logo: 'assets/logo.png',
          president: 'Grand Production House');
    }


  [1]: https://i.stack.imgur.com/DV3X0.png

1 Ответ

0 голосов
/ 13 сентября 2018

Допустим, это ваш класс упрощенный

Class Company {
 String name;
 String about;
 String backdropPhoto;
 String location;
 String logo;
 String president;
}

Затем на первой странице вашего приложения вы слушаете базу данных и получаете одну компанию, что-то вроде этого

database.reference().child('companies').once().then((DataSnapshot snapshot) {
   //todo: parse snapshot
});

Здесь вы получаете объект DataSnapshot из базы данных.Что вам нужно сделать, это проанализировать DataSnapshot для класса вашей компании.Для этого вам нужно создать собственный конструктор в классе вашей компании, например,

import 'package:firebase_database/firebase_database.dart';

Class Company {
 String name;
 String about;
 String backdropPhoto;
 String location;
 String logo;
 String president;

 Company.fromDb(DataSnapshot data) {
  name = data['name'];
  about = data['about'];
  backdropPhoto = data['backdropPhoto'];
  location = data['location'];
  logo = data['logo'];
  president = data['president'];
 }
}

Наконец, вы вызовете этот конструктор, когда получите документ из firebase

database.reference().child('companies').once().then((DataSnapshot snapshot) {
    Company company = Company.fromDb(snapshot);
});

Я работал только с Firestore, но думаю, что так оно и может быть.Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...