Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Register/sign-in anonymously into firebase #11

Merged
merged 11 commits into from
Apr 5, 2024
2 changes: 1 addition & 1 deletion android/build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
buildscript {
ext.kotlin_version = '1.6.10'
ext.kotlin_version = '1.9.23'
repositories {
google()
mavenCentral()
Expand Down
14 changes: 14 additions & 0 deletions lib/src/services/auth.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import 'package:firebase_auth/firebase_auth.dart';

/// Manages authorization processes for the app
class Auth {
/// [FirebaseAuth] instance used to access auth functionality.
final FirebaseAuth auth;

Auth({required this.auth});

/// Anonymously add or sign in the user into firebase.
Future<void> signIn() async {
final UserCredential userCredential = await auth.signInAnonymously();
}
}
4 changes: 4 additions & 0 deletions lib/src/services/run_session.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import 'package:digit_span_tasks/digit_span_tasks.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:mdigit_span_tasks_ema/src/data_manager/session_id_creator.dart';
import 'package:mdigit_span_tasks_ema/src/services/auth.dart';
import 'package:mdigit_span_tasks_ema/src/services/data_processor.dart';

import '../participant_info/participant_info_dialog.dart';
Expand All @@ -27,6 +29,8 @@ void runSession(
sessionID: sessionID,
);

await Auth(auth: FirebaseAuth.instance).signIn();

await processData(
participantID: participantID,
sessionID: sessionID,
Expand Down
2 changes: 2 additions & 0 deletions macos/Flutter/GeneratedPluginRegistrant.swift
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,14 @@ import FlutterMacOS
import Foundation

import cloud_firestore
import firebase_auth
import firebase_core
import shared_preferences_foundation
import sqlite3_flutter_libs

func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
FLTFirebaseFirestorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseFirestorePlugin"))
FLTFirebaseAuthPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseAuthPlugin"))
FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin"))
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
Sqlite3FlutterLibsPlugin.register(with: registry.registrar(forPlugin: "Sqlite3FlutterLibsPlugin"))
Expand Down
2 changes: 2 additions & 0 deletions pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,14 @@ dependencies:
ref: v0.3.0
firebase_core: ^2.28.0
cloud_firestore: ^4.16.0
firebase_auth: ^4.19.0

dev_dependencies:
flutter_test:
sdk: flutter

flutter_lints: ^2.0.0
firebase_auth_mocks: ^0.13.0

flutter:
uses-material-design: true
14 changes: 14 additions & 0 deletions test/src/services/auth_test.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import 'package:firebase_auth_mocks/firebase_auth_mocks.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:mdigit_span_tasks_ema/src/services/auth.dart';

void main() {
test(
"Auth.signIn() does not throw exceptions",
() async {
final Auth auth = Auth(auth: MockFirebaseAuth());
await auth.signIn();
expect(auth.signIn, returnsNormally);
},
);
}
3 changes: 3 additions & 0 deletions windows/flutter/generated_plugin_registrant.cc
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,16 @@
#include "generated_plugin_registrant.h"

#include <cloud_firestore/cloud_firestore_plugin_c_api.h>
#include <firebase_auth/firebase_auth_plugin_c_api.h>
#include <firebase_core/firebase_core_plugin_c_api.h>
#include <permission_handler_windows/permission_handler_windows_plugin.h>
#include <sqlite3_flutter_libs/sqlite3_flutter_libs_plugin.h>

void RegisterPlugins(flutter::PluginRegistry* registry) {
CloudFirestorePluginCApiRegisterWithRegistrar(
registry->GetRegistrarForPlugin("CloudFirestorePluginCApi"));
FirebaseAuthPluginCApiRegisterWithRegistrar(
registry->GetRegistrarForPlugin("FirebaseAuthPluginCApi"));
FirebaseCorePluginCApiRegisterWithRegistrar(
registry->GetRegistrarForPlugin("FirebaseCorePluginCApi"));
PermissionHandlerWindowsPluginRegisterWithRegistrar(
Expand Down
1 change: 1 addition & 0 deletions windows/flutter/generated_plugins.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

list(APPEND FLUTTER_PLUGIN_LIST
cloud_firestore
firebase_auth
firebase_core
permission_handler_windows
sqlite3_flutter_libs
Expand Down
Loading