Экземпляр '_MapStream показывает вместо UID в флаттер - PullRequest
0 голосов
/ 15 апреля 2020

Я хочу, чтобы значение uid превысило, но когда я использую _auth.user.toString () , он возвращает экземпляр _MapStream вместо uid, я застрял здесь, новичок в флаттере

somefile.dart

Future<void> verifyPhone(phoneNo) async {
    final PhoneVerificationCompleted verified = (AuthCredential authResult) {
        _auth.signInWithOTP(smsCode, verificationId);
        print(phoneNo);
        //print uid value over here
        print(_auth.user.toString());
    };

somefile2.dart

 User _userFromFireBaseUser(FirebaseUser user){
        return user != null ? User(uid: user.uid) : null;
      }



   Stream<User> get user{
    return _auth.onAuthStateChanged.map(_userFromFireBaseUser);
       // .map((FirebaseUser user) => _userFromFireBaseUser(user));
  }  




 Future signInWithOTP(smsCode, verId) async {
   try{
        AuthCredential authCreds = PhoneAuthProvider.getCredential(
        verificationId: verId, smsCode: smsCode);
        AuthResult result = await _auth.signInWithCredential(authCreds);
        FirebaseUser user = result.user;
        return _userFromFireBaseUser(user);

   }
   catch(e){
        print(e.toString());
        return null;
   }
  }

user.dart

class User{

  final String uid;

  User({this.uid});

}

1 Ответ

1 голос
/ 15 апреля 2020

Это верно. Это потому, что «пользователь» является экземпляром пользователя Firebase. Чтобы получить uid, просто используйте свойство 'uid' как:

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