【Flutter】The getter ‘uid’ isn’t defined for the class 'クラス名'の解消法

Firebaseと連携させてサインアップページを作ってるときに出たエラー。


```dart
onPressed: () {
                      if (_registerFormKey.currentState.validate()) {
                          FirebaseAuth.instance
                            .createUserWithEmailAndPassword(
                              email: emailInputController.text,
                              password: pwdInputController.text)
                            .then((currentUser) => Firestore.instance
                              .collection("users")
                              .document(currentUser.uid)
                              .setData({
                                "uid": currentUser.uid,
                                "name": nameInputController.text,
                                "email": emailInputController.text,
                              })
                            .then((result) => {
                              Navigator.pushAndRemoveUntil(
                                  context,
                                  MaterialPageRoute(
                                      builder: (context) => HomePage(
                                            uid: currentUser.uid,
                                          )),
                                  (_) => false),
                                    nameInputController.clear(),
                                    emailInputController.clear(),
                                    pwdInputController.clear(),
                                  })
                              .catchError((err) => print(err)))
                          .catchError((err) => print(err));
                      }
                    },
```

`The getter ‘uid’ isn’t defined for the class ‘AuthResult’.`

`uid`がAuthResultクラスに定義されていないと。

これはAPIのバージョンの問題っぽいです。

そんでもって、今のサインインメソッドはFirebaseUserの代わりにAuthResultを返すので、`uid`の前に`user`を置かないといけないらしいです。

`currentUser.uid` を `currentUser.user.uid`に変更します。

```dart
onPressed: () {
                      if (_registerFormKey.currentState.validate()) {
                          FirebaseAuth.instance
                            .createUserWithEmailAndPassword(
                              email: emailInputController.text,
                              password: pwdInputController.text)
                            .then((currentUser) => Firestore.instance
                              .collection("users")
                              .document(currentUser.user.uid)
                              .setData({
                                "uid": currentUser.user.uid,
                                "name": nameInputController.text,
                                "email": emailInputController.text,
                              })
                            .then((result) => {
                              Navigator.pushAndRemoveUntil(
                                  context,
                                  MaterialPageRoute(
                                      builder: (context) => HomePage(
                                            uid: currentUser.user.uid,
                                          )),
                                  (_) => false),
                                    nameInputController.clear(),
                                    emailInputController.clear(),
                                    pwdInputController.clear(),
                                  })
                              .catchError((err) => print(err)))
                          .catchError((err) => print(err));
                      }
                    },
```

これで解消されました。

>参照: https://medium.com/p/556cf6f9ef83/responses/show