firebase_auth_desktop 1.0.2 firebase_auth_desktop: ^1.0.2 copied to clipboard
Windows and Linux implementation of firebase_auth
// ignore_for_file: depend_on_referenced_packages, public_member_api_docs
import 'package:firebase_auth/firebase_auth.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:google_sign_in_dartio/google_sign_in_dartio.dart';
import 'package:yaru/yaru.dart';
import 'auth.dart';
import 'profile.dart';
FirebaseOptions get firebaseOptionsDefault {
if (defaultTargetPlatform == TargetPlatform.macOS) {
// Use iOS configurations on macOS.
return const FirebaseOptions(
apiKey: 'AIzaSyAgUhHU8wSJgO5MVNy95tMT07NEjzMOfz0',
authDomain: 'react-native-firebase-testing.firebaseapp.com',
databaseURL: 'https://react-native-firebase-testing.firebaseio.com',
projectId: 'react-native-firebase-testing',
messagingSenderId: '448618578101',
appId: '1:448618578101:web:0b650370bb29e29cac3efc',
measurementId: 'G-F79DJ0VFGS',
);
} else {
// Use web configurations on Linux, Windows and Web.
return const FirebaseOptions(
apiKey: 'AIzaSyAgUhHU8wSJgO5MVNy95tMT07NEjzMOfz0',
authDomain: 'react-native-firebase-testing.firebaseapp.com',
databaseURL: 'https://react-native-firebase-testing.firebaseio.com',
projectId: 'react-native-firebase-testing',
messagingSenderId: '448618578101',
appId: '1:448618578101:web:0b650370bb29e29cac3efc',
measurementId: 'G-F79DJ0VFGS',
);
}
}
// Requires that the Firebase Auth emulator is running locally
// e.g via `melos run firebase:emulator`.
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(options: firebaseOptionsDefault);
await FirebaseAuth.instance.useAuthEmulator('localhost', 9099);
await GoogleSignInDart.register(
clientId:
'448618578101-sg12d2qin42cpr00f8b0gehs5s7inm0v.apps.googleusercontent.com',
);
runApp(const AuthExampleApp());
}
/// The entry point of the application.
///
/// Returns a [MaterialApp].
class AuthExampleApp extends StatelessWidget {
const AuthExampleApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Firebase Example App',
darkTheme: yaruDark,
theme: yaruLight,
home: Scaffold(
body: LayoutBuilder(
builder: (context, constraines) {
return Row(
children: [
Visibility(
visible: constraines.maxWidth >= 1200,
child: Expanded(
child: Container(
height: double.infinity,
color: Theme.of(context).colorScheme.primary,
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'Firebase Auth Desktop',
style: Theme.of(context).textTheme.headline4,
),
],
),
),
),
),
),
Expanded(
child: StreamBuilder<User?>(
stream: FirebaseAuth.instance.authStateChanges(),
builder: (context, snapshot) {
if (snapshot.hasData) {
return const ProfilePage();
}
return const AuthGate();
},
),
),
],
);
},
),
),
);
}
}