前提・実現したいこと
現在Flutterのアプリ開発を学習中の初心者です、よろしくお願いします。
使用しているパソコンはmacOSでappleシリコン搭載のMacBookProです。
Firebase Authenticationを用いたログイン機能を実装しようと思い、コードを書いて実行したところ、シミュレータの画面に以下のような登録NGが出てきました。
発生している問題・エラーメッセージ
登録NG:No Firebase App '「DEFAULT」'has been created -call Firebase.initializeApp()
該当のソースコード
import 'package:firebase_auth/firebase_auth.dart'; import 'package:firebase_core/firebase_core.dart'; import 'package:flutter/material.dart'; void main() async { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( debugShowCheckedModeBanner: false, title: 'Flutter Demo', home: MyAuthPage(), ); } } class MyAuthPage extends StatefulWidget { @override _MyAuthPageState createState() => _MyAuthPageState(); } class _MyAuthPageState extends State<MyAuthPage> { // 入力されたメールアドレス String newUserEmail = ""; // 入力されたパスワード String newUserPassword = ""; // 登録・ログインに関する情報を表示 String infoText = ""; @override Widget build(BuildContext context) { return Scaffold( body: Center( child: Container( padding: EdgeInsets.all(32), child: Column( children: <Widget>[ TextFormField( // テキスト入力のラベルを設定 decoration: InputDecoration(labelText: "メールアドレス"), onChanged: (String value) { setState(() { newUserEmail = value; }); }, ), TextFormField( decoration: InputDecoration(labelText: "パスワード(6文字以上)"), // パスワードが見えないようにする obscureText: true, onChanged: (String value) { setState(() { newUserPassword = value; }); }, ), RaisedButton( onPressed: () async { try { // メール/パスワードでユーザー登録 final FirebaseAuth auth = FirebaseAuth.instance; final UserCredential result = await auth.createUserWithEmailAndPassword( email: newUserEmail, password: newUserPassword, ); // 登録したユーザー情報 final FirebaseUser user = result.user; setState(() { infoText = "登録OK:${user.email}"; }); } catch (e) { // 登録に失敗した場合 setState(() { infoText = "登録NG:${e.message}"; }); } }, child: Text("ユーザー登録"), ), Text(infoText) ], ), ), ), ); } }
試したこと
https://qiita.com/edasan/items/f32bc58a4afd0ca92432
上記のURLに書かれたことを参考に、3番目の「main関数でFirebase .initializeApp()を呼ぶ」というやり方を試しましたが、method_channel_firebase.dartが出てきてList<Map> apps = await channel.invokeListMethod<Map>に赤い雷⚡️マークが表示されてそこから動かなくなりました。
URLの1番目や2番目も試そうとしましたがどこをどう変えれば良いかわからないです。
ログイン機能を実装するためにはどうすれば良いか、ご教授お願いします。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー