game_services_firebase_auth 0.3.0 copy "game_services_firebase_auth: ^0.3.0" to clipboard
game_services_firebase_auth: ^0.3.0 copied to clipboard

PlatformAndroidiOS
outdated

This plugin make some FirebaseAuth features available with GameCenter on iOS and PlayGames on Android

example/lib/main.dart

import 'dart:async';

import 'package:firebase_auth/firebase_auth.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'package:game_services_firebase_auth/game_services_firebase_auth.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await Firebase.initializeApp();
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  StreamSubscription? _streamSubscription;
  User? _user;

  @override
  void initState() {
    super.initState();
    _listenAuthState();
  }

  void _listenAuthState() {
    _streamSubscription = FirebaseAuth.instance.idTokenChanges().listen((user) {
      setState(() {
        _user = user;
      });
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Auth test'),
        ),
        body: Column(
          crossAxisAlignment: CrossAxisAlignment.stretch,
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            if (_user == null) ...[
              TextButton(
                onPressed: () => FirebaseAuth.instance.signInAnonymously(),
                child: Text('Sign in Anonimously'),
              ),
              TextButton(
                onPressed: () => FirebaseAuth.instance
                    .createUserWithEmailAndPassword(
                        email: 'test@test.fr', password: 'salut123'),
                child: Text('Sign in random mail'),
              ),
              TextButton(
                onPressed: () =>
                    GameServicesFirebaseAuth.signInWithGameService(),
                child: Text('Sign in with OS Game service'),
              ),
            ],
            Column(
              crossAxisAlignment: CrossAxisAlignment.center,
              children: [
                if (_user != null) ...[
                  if (!GameServicesFirebaseAuth
                      .isUserLinkedToGameService()) ...[
                    TextButton(
                      onPressed: () => GameServicesFirebaseAuth
                          .linkGameServicesCredentialsToCurrentUser(),
                      child: Text('Link credentials with OS Game service'),
                    ),
                    TextButton(
                      onPressed: () => GameServicesFirebaseAuth
                          .linkGameServicesCredentialsToCurrentUser(
                              forceSignInIfCredentialAlreadyUsed: true),
                      child: Text(
                          'Link credentials with OS Game service (Forced)'),
                    ),
                  ],
                  Text('Name: ${_user?.displayName}'),
                  Text('Email: ${_user?.email}'),
                  Text('UID: ${_user?.uid}'),
                  Text(
                      'Providers: ${_user?.providerData.map((e) => e.providerId)}'),
                  Text(
                      'Is linked with GameServices: ${GameServicesFirebaseAuth.isUserLinkedToGameService()}'),
                  TextButton(
                    onPressed: () => FirebaseAuth.instance.signOut(),
                    child: Text('Logout'),
                  ),
                ]
              ],
            ),
          ],
        ),
      ),
    );
  }

  @override
  void dispose() {
    super.dispose();
    _streamSubscription?.cancel();
  }
}
11
likes
130
points
156
downloads

Publisher

verified publisherrevoltgames.io

Weekly Downloads

This plugin make some FirebaseAuth features available with GameCenter on iOS and PlayGames on Android

Documentation

API reference

License

MIT (license)

Dependencies

firebase_auth, firebase_core, flutter

More

Packages that depend on game_services_firebase_auth

Packages that implement game_services_firebase_auth