lib/photo_list_screen.dart
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:photoapp/photo_view_screen.dart';
import 'package:photoapp/sign_in_screen.dart';
class PhotoListScreen extends StatefulWidget {
@override
_PhotoListScreenState createState() => _PhotoListScreenState();
}
class _PhotoListScreenState extends State<PhotoListScreen> {
// ...
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Photo App'),
actions: [
// ログアウト用ボタン
IconButton(
// タップしたときの処理
onPressed: () => _onSignOut(),
icon: Icon(Icons.exit_to_app),
),
],
),
// ...
);
}
// ...
Future<void> _onSignOut() async {
// ログアウト処理
await FirebaseAuth.instance.signOut();
// ログアウトに成功したらログイン画面に戻す
// 現在の画面は不要になるのでpushReplacementを使う
Navigator.of(context).pushReplacement(
MaterialPageRoute(
builder: (_) => SignInScreen(),
),
);
}
}