前提・実現したいこと
FlutterとFirebaseを連携させて、Firebase Authenticationでユーザー認証をしようとしていますが、
iOsのmyurエミュレーターに繋いでもネットワークエラーが表示され続けてうまくいきません。
発生している問題・エラーメッセージ
ユーザー登録を実際にしとうとすると、下記のエラーメッセージが現れます。
[firebase_auth/network-request-failed]Network error (such as timeout, interrupted connection or unreachable host) has occurred.
該当のソースコード
dart
1import 'package:firebase_auth/firebase_auth.dart'; 2import 'package:firebase_core/firebase_core.dart'; 3import 'package:flutter/material.dart'; 4 5Future<void> main() async { 6 // Firebase初期化 7 WidgetsFlutterBinding.ensureInitialized(); 8 await Firebase.initializeApp(); 9 runApp(MyApp()); 10} 11 12class MyApp extends StatelessWidget { 13 // This widget is the root of your application. 14 15 Widget build(BuildContext context) { 16 return MaterialApp( 17 title: 'Flutter Demo', 18 theme: ThemeData( 19 primarySwatch: Colors.blue, 20 ), 21 home: MyAuthPage(), 22 ); 23 } 24} 25 26class MyAuthPage extends StatefulWidget { 27 28 _MyAuthPageState createState() => _MyAuthPageState(); 29} 30 31class _MyAuthPageState extends State<MyAuthPage> { 32 // 入力されたメールアドレス 33 String newUserEmail = ""; 34 // 入力されたパスワード 35 String newUserPassword = ""; 36 // 登録・ログインに関する情報を表示 37 String infoText = ""; 38 39 40 Widget build(BuildContext context) { 41 return Scaffold( 42 body: Center( 43 child: Container( 44 padding: EdgeInsets.all(32), 45 child: Column( 46 children: <Widget>[ 47 TextFormField( 48 // テキスト入力のラベルを設定 49 decoration: InputDecoration(labelText: "メールアドレス"), 50 onChanged: (String value) { 51 setState(() { 52 newUserEmail = value; 53 }); 54 }, 55 ), 56 const SizedBox(height: 8), 57 TextFormField( 58 decoration: InputDecoration(labelText: "パスワード(6文字以上)"), 59 // パスワードが見えないようにする 60 obscureText: true, 61 onChanged: (String value) { 62 setState(() { 63 newUserPassword = value; 64 }); 65 }, 66 ), 67 const SizedBox(height: 8), 68 ElevatedButton( 69 onPressed: () async { 70 try { 71 // メール/パスワードでユーザー登録 72 final FirebaseAuth auth = FirebaseAuth.instance; 73 final UserCredential result = 74 await auth.createUserWithEmailAndPassword( 75 email: newUserEmail, 76 password: newUserPassword, 77 ); 78 79 // 登録したユーザー情報 80 final User user = result.user!; 81 setState(() { 82 infoText = "登録OK:${user.email}"; 83 }); 84 } catch (e) { 85 // 登録に失敗した場合 86 setState(() { 87 infoText = "登録NG:${e.toString()}"; 88 }); 89 } 90 }, 91 child: Text("ユーザー登録"), 92 ), 93 const SizedBox(height: 8), 94 Text(infoText) 95 ], 96 ), 97 ), 98 ), 99 ); 100 } 101} 102
試したこと
- それぞれのpackageがしっかり入ってるかの確認
- 下記記事に従って、ios/runner/info.plistの書き換え
https://note.com/kyklades/n/n172d20650def
(省略) </array> //追加部分 <key>UIViewControllerBasedStatusBarAppearance</key> <false/> <key>NSAppTransportSecurity</key> <dict> <key>NSAllowsLocalNetworking</key> <true/> </dict> //追加部分終了 </dict> </plist>
- 下記記事に従って、Xcodeで設定を試みるも該当するOutgoing Connectionsの設定が現れず。
補足情報(FW/ツールのバージョンなど)
Android Studioを使っています。
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー