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

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
pub points
44%
popularity

Publisher

verified publisherrevoltgames.io

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

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (LICENSE)

Dependencies

firebase_auth, firebase_core, flutter

More

Packages that depend on game_services_firebase_auth