Skip to content

Commit 8c987d3

Browse files
committed
feat: update to ionic 5 angular 9
1 parent f6ba46f commit 8c987d3

File tree

144 files changed

+24281
-7921
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

144 files changed

+24281
-7921
lines changed

.firebaserc

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"targets": {
3+
"ionic5-firebase-authentication": {
4+
"hosting": {
5+
"app": [
6+
"ionic5-firebase-authentication"
7+
]
8+
}
9+
}
10+
},
11+
"projects": {
12+
"demo": "ionic5-firebase-authentication"
13+
}
14+
}

.gitignore

+21-23
Original file line numberDiff line numberDiff line change
@@ -3,33 +3,31 @@
33

44
*~
55
*.sw[mnpcod]
6-
*.log
6+
.tmp
77
*.tmp
88
*.tmp.*
9-
log.txt
109
*.sublime-project
1110
*.sublime-workspace
12-
.vscode/
13-
npm-debug.log*
14-
15-
.idea/
16-
.sourcemaps/
17-
.sass-cache/
18-
.tmp/
19-
.versions/
20-
coverage/
21-
dist/
22-
node_modules/
23-
tmp/
24-
temp/
25-
hooks/
26-
platforms/
27-
plugins/
28-
plugins/android.json
29-
plugins/ios.json
30-
www/
31-
$RECYCLE.BIN/
32-
3311
.DS_Store
3412
Thumbs.db
3513
UserInterfaceState.xcuserstate
14+
$RECYCLE.BIN/
15+
16+
*.log
17+
log.txt
18+
npm-debug.log*
19+
20+
/.idea
21+
/.ionic
22+
/.sass-cache
23+
/.sourcemaps
24+
/.versions
25+
/.vscode
26+
/coverage
27+
/dist
28+
/node_modules
29+
/platforms
30+
/plugins
31+
/www
32+
33+
.firebase

README.md

+51-6
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,56 @@
1-
## Firebase Authentication in Ionic Framework Apps
1+
# Ionic Firebase Authentication
2+
Enjoy this free Ionic 5 Firebase demo app and save tons of hours of work!
23

3-
In this ionic tutorial we will learn how to configure a firebase application to enable an ionic 3 application to log in with both Email and Password and social providers such as Facebook, Twitter and Google.
4+
<div>
5+
<img src="https://ionicthemes.s3-us-west-2.amazonaws.com/tutorials/screenshots/firebase-authentication-in-ionic-framework-apps/ionic5/tutorial-sign-in.jpeg" width="270">
6+
<img src="https://ionicthemes.s3-us-west-2.amazonaws.com/tutorials/screenshots/firebase-authentication-in-ionic-framework-apps/ionic5/tutorial-sign-up.jpeg" width="270">
7+
<img src="https://ionicthemes.s3-us-west-2.amazonaws.com/tutorials/screenshots/firebase-authentication-in-ionic-framework-apps/ionic5/tutorial-profile.jpeg" width="270">
8+
</div>
49

5-
This repo is a simple ionic 3 app example with the goal of helping you integration Firebase Authentication to your Ionic app.
10+
## About this ionic demo
11+
This repo is the code of an Ionic 5 starter app that we created as part of the post: **[Ionic Firebase Authentication Tutorial](https://ionicthemes.com/tutorials/about/firebase-authentication-in-ionic-framework-apps). In this post we explain how to perform Social Sign In with Firebase from an Ionic application.**
612

7-
![demo](https://s3-us-west-2.amazonaws.com/ionicthemes/tutorials/screenshots/firebase-authentication-in-ionic-framework-apps/firebase-auth-login.png)
8-
![demo](https://s3-us-west-2.amazonaws.com/ionicthemes/tutorials/screenshots/firebase-authentication-in-ionic-framework-apps/firebase-auth-register.png)
13+
Most apps need to know the identity of the user who is using it. Knowing a user's identity allows an app to securely save user data in the cloud and provide a personalized experience across all of the user's devices.
914

15+
In this Ionic + Firebase tutorial you will learn how to create an Ionic Framework Application with Firebase Authentication. We will show you how to configure both the Firebase and the Ionic 5 App to enable authentication with social providers such as Google, Facebook and Twitter and also with Email and Password.
1016

11-
Read the complete Ionic Firebase Authentication Tutorial in https://ionicthemes.com/tutorials/about/firebase-authentication-in-ionic-framework-apps
17+
As an example we built this Ionic Framework application that allows users to log in and log out using all of the above mentioned authentication options. Once they log in, they will see a profile page with their basic profile info taken from the authentication provider.
18+
19+
Read the complete post in https://ionicthemes.com/tutorials/about/firebase-authentication-in-ionic-framework-apps.
20+
21+
### Ionic Firebase Starter
22+
This repo is a simple ionic 5 starter app with three pages:
23+
- Sign In
24+
- Sign Up
25+
- Profile
26+
27+
Find more Ionic tutorials and starter apps in https://ionicthemes.com
28+
29+
### Demo
30+
- [Online demo](https://ionic5-firebase-authentication.web.app)
31+
32+
## Install this Ionic 5 Firebase App
33+
```
34+
npm install
35+
```
36+
### Browse the app
37+
```
38+
ionic serve
39+
```
40+
41+
### Get a premium Ionic 5 Starter App with Firebase Integration
42+
If you want a ready-made example of how to use Firebase Authentication in Ionic 5 with Capacitor configurations for iOS and Android, check [Ionic 5 Full Starter App PRO](https://ionicthemes.com/product/ionic5-full-starter-app-pro-version). We spent many hours configuring and testing everything so that you don't have to.
43+
44+
This template has more than 100 carefully designed views and components, it will help you grasp the best practices and new concepts of Ionic 5.
45+
46+
It also includes a very complete integration with Firebase which includes:
47+
- Firebase Authentication with different providers:
48+
- Facebook sign in
49+
- Twitter sign in
50+
- Google sign in
51+
- Email/Password sign in
52+
- This implementation works in all environments: web, PWA, mobile apps with Capacitor.
53+
- Firebase CRUD
54+
- Firebase queries
55+
56+
<img src="https://ionicthemes.s3-us-west-2.amazonaws.com/cover_images/redesign/ionic5-full-starter-app-pro.jpg"/>

angular.json

+193
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,193 @@
1+
{
2+
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
3+
"version": 1,
4+
"defaultProject": "app",
5+
"newProjectRoot": "projects",
6+
"projects": {
7+
"app": {
8+
"root": "",
9+
"sourceRoot": "src",
10+
"projectType": "application",
11+
"prefix": "app",
12+
"schematics": {},
13+
"architect": {
14+
"build": {
15+
"builder": "@angular-devkit/build-angular:browser",
16+
"options": {
17+
"outputPath": "www",
18+
"index": "src/index.html",
19+
"main": "src/main.ts",
20+
"polyfills": "src/polyfills.ts",
21+
"tsConfig": "tsconfig.app.json",
22+
"assets": [
23+
{
24+
"glob": "**/*",
25+
"input": "src/assets",
26+
"output": "assets"
27+
},
28+
{
29+
"glob": "**/*.svg",
30+
"input": "node_modules/ionicons/dist/ionicons/svg",
31+
"output": "./svg"
32+
}
33+
],
34+
"styles": [
35+
{
36+
"input": "src/theme/variables.scss"
37+
},
38+
{
39+
"input": "src/global.scss"
40+
}
41+
],
42+
"scripts": []
43+
},
44+
"configurations": {
45+
"production": {
46+
"fileReplacements": [
47+
{
48+
"replace": "src/environments/environment.ts",
49+
"with": "src/environments/environment.prod.ts"
50+
}
51+
],
52+
"optimization": true,
53+
"outputHashing": "all",
54+
"sourceMap": false,
55+
"extractCss": true,
56+
"namedChunks": false,
57+
"aot": true,
58+
"extractLicenses": true,
59+
"vendorChunk": false,
60+
"buildOptimizer": true,
61+
"budgets": [
62+
{
63+
"type": "initial",
64+
"maximumWarning": "2mb",
65+
"maximumError": "5mb"
66+
}
67+
]
68+
},
69+
"ci": {
70+
"progress": false
71+
}
72+
}
73+
},
74+
"serve": {
75+
"builder": "@angular-devkit/build-angular:dev-server",
76+
"options": {
77+
"browserTarget": "app:build"
78+
},
79+
"configurations": {
80+
"production": {
81+
"browserTarget": "app:build:production"
82+
},
83+
"ci": {
84+
"progress": false
85+
}
86+
}
87+
},
88+
"extract-i18n": {
89+
"builder": "@angular-devkit/build-angular:extract-i18n",
90+
"options": {
91+
"browserTarget": "app:build"
92+
}
93+
},
94+
"test": {
95+
"builder": "@angular-devkit/build-angular:karma",
96+
"options": {
97+
"main": "src/test.ts",
98+
"polyfills": "src/polyfills.ts",
99+
"tsConfig": "tsconfig.spec.json",
100+
"karmaConfig": "karma.conf.js",
101+
"styles": [],
102+
"scripts": [],
103+
"assets": [
104+
{
105+
"glob": "favicon.ico",
106+
"input": "src/",
107+
"output": "/"
108+
},
109+
{
110+
"glob": "**/*",
111+
"input": "src/assets",
112+
"output": "/assets"
113+
}
114+
]
115+
},
116+
"configurations": {
117+
"ci": {
118+
"progress": false,
119+
"watch": false
120+
}
121+
}
122+
},
123+
"lint": {
124+
"builder": "@angular-devkit/build-angular:tslint",
125+
"options": {
126+
"tsConfig": [
127+
"tsconfig.app.json",
128+
"tsconfig.spec.json",
129+
"e2e/tsconfig.json"
130+
],
131+
"exclude": [
132+
"**/node_modules/**"
133+
]
134+
}
135+
},
136+
"e2e": {
137+
"builder": "@angular-devkit/build-angular:protractor",
138+
"options": {
139+
"protractorConfig": "e2e/protractor.conf.js",
140+
"devServerTarget": "app:serve"
141+
},
142+
"configurations": {
143+
"production": {
144+
"devServerTarget": "app:serve:production"
145+
},
146+
"ci": {
147+
"devServerTarget": "app:serve:ci"
148+
}
149+
}
150+
},
151+
"ionic-cordova-build": {
152+
"builder": "@ionic/angular-toolkit:cordova-build",
153+
"options": {
154+
"browserTarget": "app:build"
155+
},
156+
"configurations": {
157+
"production": {
158+
"browserTarget": "app:build:production"
159+
}
160+
}
161+
},
162+
"ionic-cordova-serve": {
163+
"builder": "@ionic/angular-toolkit:cordova-serve",
164+
"options": {
165+
"cordovaBuildTarget": "app:ionic-cordova-build",
166+
"devServerTarget": "app:serve"
167+
},
168+
"configurations": {
169+
"production": {
170+
"cordovaBuildTarget": "app:ionic-cordova-build:production",
171+
"devServerTarget": "app:serve:production"
172+
}
173+
}
174+
},
175+
"deploy": {
176+
"builder": "@angular/fire:deploy",
177+
"options": {}
178+
}
179+
}
180+
}
181+
},
182+
"cli": {
183+
"defaultCollection": "@ionic/angular-toolkit"
184+
},
185+
"schematics": {
186+
"@ionic/angular-toolkit:component": {
187+
"styleext": "scss"
188+
},
189+
"@ionic/angular-toolkit:page": {
190+
"styleext": "scss"
191+
}
192+
}
193+
}

browserslist

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
2+
# For additional information regarding the format and rule options, please see:
3+
# https://github.com/browserslist/browserslist#queries
4+
5+
# You can see what browsers were selected by your queries by running:
6+
# npx browserslist
7+
8+
> 0.5%
9+
last 2 versions
10+
Firefox ESR
11+
not dead
12+
not IE 9-11 # For IE 9-11 support, remove 'not'.

capacitor.config.json

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"appId": "io.ionic.starter",
3+
"appName": "ionic5-firebase-authentication",
4+
"bundledWebRuntime": false,
5+
"npmClient": "npm",
6+
"webDir": "www",
7+
"cordova": {}
8+
}

e2e/protractor.conf.js

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
// Protractor configuration file, see link for more information
2+
// https://github.com/angular/protractor/blob/master/lib/config.ts
3+
4+
const { SpecReporter } = require('jasmine-spec-reporter');
5+
6+
exports.config = {
7+
allScriptsTimeout: 11000,
8+
specs: [
9+
'./src/**/*.e2e-spec.ts'
10+
],
11+
capabilities: {
12+
'browserName': 'chrome'
13+
},
14+
directConnect: true,
15+
baseUrl: 'http://localhost:4200/',
16+
framework: 'jasmine',
17+
jasmineNodeOpts: {
18+
showColors: true,
19+
defaultTimeoutInterval: 30000,
20+
print: function() {}
21+
},
22+
onPrepare() {
23+
require('ts-node').register({
24+
project: require('path').join(__dirname, './tsconfig.json')
25+
});
26+
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
27+
}
28+
};

e2e/src/app.e2e-spec.ts

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { AppPage } from './app.po';
2+
3+
describe('new App', () => {
4+
let page: AppPage;
5+
6+
beforeEach(() => {
7+
page = new AppPage();
8+
});
9+
10+
it('should be blank', () => {
11+
page.navigateTo();
12+
expect(page.getParagraphText()).toContain('Start with Ionic UI Components');
13+
});
14+
});

0 commit comments

Comments
 (0)