Получение даты из firebase во флаттере и сохранение ее в переменной - PullRequest
0 голосов
/ 19 сентября 2018

Есть ли способ получить данные из firebase и сохранить их в виде строки, например, во флаттере?

Я хочу, чтобы в моем приложении были пользователи на основе ролей, у каждого пользователя есть роль и страница для них.Аутентификация firebase имеет только имя пользователя и пароль.в моей базе данных есть коллекция Users, UID используется в качестве идентификатора для документов, я хочу запросить документ, получить значение роли и сохранить его в переменной в виде строки.http://prntscr.com/kwcylt

 Container(
              height: 50.0,
              child: Material(
                borderRadius: BorderRadius.circular(20.0),
                shadowColor: Colors.greenAccent,
                color: Colors.green,
                elevation: 7.0,
                child: GestureDetector(
                  onTap: () {
                    FirebaseAuth.instance
                        .signInWithEmailAndPassword(
                          email: email,
                          password: password)
                        .then((FirebaseUser user) {
                         var userRole = Firestore.instance.collection('Users').document(user.uid).toString();

                         if(userRole['Role'].toString().compareTo("Admin"))
                            Navigator.of(context).pushReplacementNamed('/AdminTabs');
                          else Navigator.of(context).pushReplacementNamed('/UserTabs');      
                    })
                        .catchError((e) {
                          print(e);
                    });
                  },

Я хочу, чтобы userRole содержал данные из базы данных

1 Ответ

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

Обновите ваш код следующим образом, он будет работать: вы в основном выполняете проверку ссылки на документ, а не снимок документа.

.then((FirebaseUser user) {
    Firestore.instance.collection('Users')
                .document('user.uid').get().then((userRole){
              if(userRole['Role'].toString().contains("Admin")){
                 Navigator.of(context).pushReplacementNamed('/AdminTabs');
              }
    else {Navigator.of(context).pushReplacementNamed('/UserTabs');}
            });

                    })
                        .catchError((e) {
                          print(e);
                    });
                  },
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...