Skip to content

Instantly share code, notes, and snippets.

View felangel's full-sized avatar
coding

Felix Angelov felangel

coding
View GitHub Profile
@felangel
felangel / authentication_bloc.dart
Created August 4, 2019 18:48
[flutter_firestore_todos] authentication bloc
import 'dart:async';
import 'package:bloc/bloc.dart';
import 'package:meta/meta.dart';
import 'package:user_repository/user_repository.dart';
import 'package:flutter_firestore_todos/blocs/authentication_bloc/bloc.dart';
class AuthenticationBloc
extends Bloc<AuthenticationEvent, AuthenticationState> {
final UserRepository _userRepository;
@felangel
felangel / authentication_state.dart
Created August 4, 2019 18:47
[flutter_firestore_todos] authentication states
import 'package:equatable/equatable.dart';
import 'package:meta/meta.dart';
@immutable
abstract class AuthenticationState extends Equatable {
AuthenticationState([List props = const []]) : super(props);
}
class Uninitialized extends AuthenticationState {
@override
@felangel
felangel / authentication_event.dart
Created August 4, 2019 18:47
[flutter_firestore_todos] authentication events
import 'package:equatable/equatable.dart';
import 'package:meta/meta.dart';
@immutable
abstract class AuthenticationEvent extends Equatable {
AuthenticationEvent([List props = const []]) : super(props);
}
class AppStarted extends AuthenticationEvent {
@override
@felangel
felangel / pubspec.yaml
Created August 4, 2019 18:46
[flutter_firestore_todos] flutter app pubspec
name: flutter_firestore_todos
description: A new Flutter project.
version: 1.0.0+1
environment:
sdk: ">=2.1.0 <3.0.0"
dependencies:
flutter:
@felangel
felangel / firebase_user_repository.dart
Created August 4, 2019 18:44
[flutter_firestore_todos] firebase user repository
import 'package:firebase_auth/firebase_auth.dart';
import 'package:user_repository/user_repository.dart';
class FirebaseUserRepository implements UserRepository {
final FirebaseAuth _firebaseAuth;
FirebaseUserRepository({FirebaseAuth firebaseAuth})
: _firebaseAuth = firebaseAuth ?? FirebaseAuth.instance;
Future<bool> isAuthenticated() async {
@felangel
felangel / user_repository.dart
Created August 4, 2019 18:43
[flutter_firestore_todos] user repository base
abstract class UserRepository {
Future<bool> isAuthenticated();
Future<void> authenticate();
Future<String> getUserId();
}
@felangel
felangel / user_repository.dart
Created August 4, 2019 18:42
[flutter_firestore_todos] user repository package root
library user_repository;
export 'src/user_repository.dart';
@felangel
felangel / pubspec.yaml
Created August 4, 2019 18:41
[flutter_firestore_todos] user repository pubspec
name: user_repository
version: 1.0.0+1
environment:
sdk: ">=2.1.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
@felangel
felangel / firebase_todos_repository.dart
Created August 4, 2019 18:39
[flutter_firestore_todos] firebase todos repository
import 'dart:async';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:todos_repository/todos_repository.dart';
import 'entities/entities.dart';
class FirebaseTodosRepository implements TodosRepository {
final todoCollection = Firestore.instance.collection('todos');
@override
@felangel
felangel / todos_repository.dart
Created August 4, 2019 18:38
[flutter_firestore_todos] todos repository base
import 'dart:async';
import 'package:todos_repository/todos_repository.dart';
abstract class TodosRepository {
Future<void> addNewTodo(Todo todo);
Future<void> deleteTodo(Todo todo);
Stream<List<Todo>> todos();