Giter Site home page Giter Site logo

anthonynahas / ngx-auth-firebaseui Goto Github PK

View Code? Open in Web Editor NEW
591.0 25.0 166.0 203.85 MB

Angular Material UI component for firebase authentication

Home Page: https://ngx-auth-firebaseui.firebaseapp.com

License: MIT License

JavaScript 0.69% HTML 44.25% TypeScript 50.94% SCSS 4.12%
angular firebaseui material ngx demo authentication typescript angular-components ssr serverside-rendering

ngx-auth-firebaseui's Introduction

ngx-auth-firebaseui - Open Source Library for Angular Web Apps to integrate a material user interface for firebase authentication.

npm version demo docs: typedoc codecov CircleCI branch Join the chat at https://gitter.im/ngx-auth-firebaseui/Lobby npm Greenkeeper badge license GitHub forks GitHub stars GitHub followers Twitter URL Twitter Follow Awesome

Angular UI component for firebase authentication. This library is an angular module (including angular components and services) that allows to authenticate your users with your firebase project. NgxAuthFirebaseUI is compatible with angular material and angular flexLayout.

If you prefer to develop with bootstrap rather than with material design, please check this project @firebaseui/ng-bootstrap

Built by and for developers ❤️

Do you have any question or suggestion ? Please do not hesitate to contact us! Alternatively, provide a PR | open an appropriate issue here

If you like this project, support ngx-auth-firebaseui by starring ⭐ and sharing it 📢

Table of Contents

Features ngx-auth-firebaseui firebaseui
Sign Up ✔️ ✔️
Sign In ✔️ ✔️
Sign In Anonymously ✔️ ✔️
Sign In with Google ✔️ ✔️
Sign In with Apple ✔️ ✔️
Sign In with Facebook ✔️ ✔️
Sign In with Twitter ✔️ ✔️
Sign In with Github ✔️ ✔️
Sign In with Microsoft ✔️ ✔️
Sign In with Yahoo ✔️ ✔️
Sign In with Phonenumber ✔️
Sign out ✔️
Sign in/up progress indicator ✔️
Password Strength indicator ✔️
Forgot/Reset Password ✔️
Password Strength Meter ✔️
Delete account ✔️
Login Authentication Guard ✔️
User Profile ✔️
Check whether user's email is verified ✔️
Edit user's display name (incl. validation) ✔️
Edit user's email (incl. validation) ✔️
Edit user's phone number (incl. validation) ✔️
Configure your favorite auth provider in runtime ✔️
Sync user'auth with Firestore read more ✔️
Animations ✔️
Angular v2-13 friendly ✔️
Internationalization (i18n) ✔️ ✔️
Ionic/cordova support 🔜 @firebaseui/ionic-auth
Real time form validation ✔️
Easy to integrate ✔️
Support Server Side Rendering ✔️
Support SPA without further config ✔️
Support Safari private browsing ✔️ ⁉️
AWESOME ✔️ ⁉️
  • 💝 it uses a responsive and accessible web design UX/UI from google material concepts and components (supporting desktop, tablet and mobile view) incl. smooth animations for a better UX.
  • 💄 pick up your own theme! change the primary, accent and warn colors whenever you need (e.g to support light and dark themes)
  • 🚢 super easy to use with an angular based project (project that is created with the angular-cli)
  • 🔜 optional configuration
  • ♻️ configure your authentication providers in runtime
  • ♻️ reusable components for every project that needs an authentication with a firebase project/app.
  • 🛃 built in feedback mechanism in form of a snackbar when an error or any important event occurred.
  • 🆘 ability to sign out or even to delete totally the account
  • 👻 your client does not want to create an account in your project? Let him to sign in anonymously!
  • 👥 user profile component to display user's data using via ngx-auth-firebaseui-user
  • ⚡ update user profile as feature
  • 🔥 Sync user's authentication with FIRESTORE AUTOMATICALLY
  • 💪 Forgot Password feature! Go and let your users to recover their passwords easily
  • 🎉 Supports SSR - Server Side Rendering
  • support of i18n
  • <ngx-auth-firebaseui> used for the authentication process see more
  • <ngx-auth-firebaseui-register> standalone registration component to create new accounts see more
  • <ngx-auth-firebaseui-login> standalone login component to use already created accounts see more
  • <ngx-auth-firebaseui-providers> used to display only buttons for providers like google, facebook, twitter, github, microsoft and yahoo see more
  • <ngx-auth-firebaseui-user> used to display/edit the data of the current authenticated user in form of a material card see more
  • <ngx-auth-firebaseui-avatar> used to display/edit the data of the current authenticated user in the toolbar see more
  • anonymously
  • email and password (traditional)
  • google
  • apple
  • facebook
  • twitter
  • github
  • Microsoft
  • Yahoo
  • phone number 🔜
  • sign up
  • sign in
  • sign in Anonymously | with google, apple, facebook, twitter, github, microsoft, yahoo
  • sign out
  • validation of password's strength while creating a new account using @angular-material-extensions/password-strength
  • forgot/reset password
  • sending email verifications
  • delete user's account
  • edit user's profile like email, name, (profile picture 🔜) and phone number
  • firestore auto sync 🔥
  • do not allow users to create new accounts before checking the terms of services and private policy - for mor info check this here

Supported Angular Guards

  • LoggedInGuard used to protect angular routes from unauthenticated users (with fallback routes via NgxAuthFirebaseUIConfig)

the full tutorial guide can be found here

take a look at live example with firestore's synchronization here


  • sign in

ngx-auth-firebaseui sign in

in combination with ngx-auth-firebaseui-user

ngx-auth-firebaseui sign in

  • Sign up - registration

before

ngx-auth-firebaseui sign up

after

ngx-auth-firebaseui sign up

demo outlook

ngx-auth-firebaseui sign up

Screenshots

row layout

Please note: when the view port is getting too small, the layout will be automatically change to column

ngx-auth-firebaseui sign up

| User Profile

when logged in

ngx-auth-firebaseui user profile component

in edit mode

ngx-auth-firebaseui edit user component

Screenshots - Reset Password

  • Before

ngx-auth-firebaseui on mobile

  • After

ngx-auth-firebaseui on mobile

ngx-auth-firebaseui on mobile


"peerDependencies": {
    "@angular/core": "^13.x",
    "@angular/animations": "^13.x",
    "@angular/cdk": "^13.x",
    "@angular/flex-layout": "^13.0.0-beta.38",
    "@angular/forms": "^13.x",
    "@angular/material": "^13.x",
    "@angular/fire": "7.x",
    "firebase": "9.x",
  }

NOTE:

  • v1.x should be used with angular v7 projects
  • v3.x should be used with angular v8 projects
  • v4.x should be used with angular v9/10 projects
  • v5.x should be used with angular v11 projects
  • v6.x should be used with angular v12/13 projects
  • v7.x should be used with angular v14 projects

help!


the @angular-material-extensions/password-strength is used to indicate how secure is the provided password when registering a new firebase user e.g:

1. Install via ng add. (Recommended)

If Angular Material Design is not setup, just run ng add @angular/material learn more

Now add the library via the angular schematics

ng add ngx-auth-firebaseui
  • ✔️ peer dependencies will be automatically added the package.json and installed
  • ✔️ ngx-auth-firebaseui 's module will be automatically imported to the root module (just replace PUT_YOUR_FIREBASE_API_KEY_HERE with your firebase api key)
  • ✔️ ngx-auth-firebaseui 's assets will be automatically added the angular.json file

2. Install via npm. (Alternative)

Install above dependencies via npm.

Now install ngx-auth-firebaseui via:

npm install --save ngx-auth-firebaseui

Install the dependencies @angular-material-extensions/password-strength via:

npm install --save @angular-material-extensions/password-strength
npm i -s @angular/material @angular/cdk @angular/flex-layout @angular/forms @angular/animations @angular/router

Firebase deps

npm i -s firebase @angular/fire

-> continue by following the instructions here

Once installed you need to import the main module:

import { NgxAuthFirebaseUIModule } from 'ngx-auth-firebaseui';

The only remaining part is to list the imported module in your application module. The exact method will be slightly different for the root (top-level) module for which you should end up with the code similar to (notice NgxAuthFirebaseUIModule .forRoot()):

and then from your Angular AppModule:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppComponent } from './app.component';

// Import your library
import { NgxAuthFirebaseUIModule } from 'ngx-auth-firebaseui';
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    BrowserAnimationsModule,

    // Specify the ngx-auth-firebaseui library as an import
    NgxAuthFirebaseUIModule.forRoot({
                    apiKey: 'your-firebase-apiKey',
                    authDomain: 'your-firebase-authDomain',
                    databaseURL: 'your-firebase-databaseURL',
                    projectId: 'your-firebase-projectId',
                    storageBucket: 'your-firebase-storageBucket',
                    messagingSenderId: 'your-firebase-messagingSenderId'
                }),
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

Other modules in your application can simply import NgxAuthFirebaseUIModule:

import { NgxAuthFirebaseUIModule } from 'ngx-auth-firebaseui';

@NgModule({
  declarations: [OtherComponent, ...],
  imports: [NgxAuthFirebaseUIModule, ...],
})
export class OtherModule {
}

SystemJS

Note:If you are using SystemJS, you should adjust your configuration to point to the UMD bundle. In your systemjs config file, map needs to tell the System loader where to look for ngx-auth-firebaseui:

map: {
  'ngx-auth-firebaseui': 'node_modules/ngx-auth-firebaseui/bundles/ngx-auth-firebaseui.umd.js',
}
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppComponent } from './app.component';

// Import your library
import { NgxAuthFirebaseUIModule } from 'ngx-auth-firebaseui';
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    BrowserAnimationsModule,

    // Specify the ngx-auth-firebaseui library as an import
    NgxAuthFirebaseUIModule.forRoot(
                {
                  apiKey: 'your-firebase-apiKey',
                  authDomain: 'your-firebase-authDomain',
                  databaseURL: 'your-firebase-databaseURL',
                  projectId: 'your-firebase-projectId',
                  storageBucket: 'your-firebase-storageBucket',
                  messagingSenderId: 'your-firebase-messagingSenderId'
                },
                 () => 'your_app_name_factory',
                {
                  enableFirestoreSync: true, // enable/disable autosync users with firestore
                  toastMessageOnAuthSuccess: false, // whether to open/show a snackbar message on auth success - default : true
                  toastMessageOnAuthError: false, // whether to open/show a snackbar message on auth error - default : true
                  authGuardFallbackURL: '/loggedout', // url for unauthenticated users - to use in combination with canActivate feature on a route
                  authGuardLoggedInURL: '/loggedin', // url for authenticated users - to use in combination with canActivate feature on a route
                  passwordMaxLength: 60, // `min/max` input parameters in components should be within this range.
                  passwordMinLength: 8, // Password length min/max in forms independently of each componenet min/max.
                  // Same as password but for the name
                  nameMaxLength: 50,
                  nameMinLength: 2,
                  // If set, sign-in/up form is not available until email has been verified.
                  // Plus protected routes are still protected even though user is connected.
                  guardProtectedRoutesUntilEmailIsVerified: true,
                  enableEmailVerification: true, // default: true
                  useRawUserCredential: true, // If set to true outputs the UserCredential object instead of firebase.User after login and signup - Default: false
                }),
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }


(3) Usage

Once the library is imported, you can use its components, directives and pipes in your Angular application:

<ngx-auth-firebaseui></ngx-auth-firebaseui> see the usage

<ngx-auth-firebaseui-login></ngx-auth-firebaseui-login> see the usage

<ngx-auth-firebaseui-register></ngx-auth-firebaseui-register> see the usage

<ngx-auth-firebaseui-providers></ngx-auth-firebaseui-providers> see the usage

<ngx-auth-firebaseui-user></ngx-auth-firebaseui-user> see the usage

<ngx-auth-firebaseui-avatar></ngx-auth-firebaseui-avatar> see the usage

<ngx-auth-firebaseui></ngx-auth-firebaseui> see the api

<ngx-auth-firebaseui-login></ngx-auth-firebaseui-login> see the api

<ngx-auth-firebaseui-register></ngx-auth-firebaseui-register> see the api

<ngx-auth-firebaseui-providers></ngx-auth-firebaseui-providers> see the api

<ngx-auth-firebaseui-user></ngx-auth-firebaseui-user> see the api

<ngx-auth-firebaseui-avatar></ngx-auth-firebaseui-avatar> see the api

EXTRA TIP: Login Authentication Guard

If you want to prevent a route to be accessed from non authorized users, you can use a built in LoggedInGuard angular router guard.

  1. enter the fallback url in the NgxAuthFirebaseUIConfig under authGuardFallbackURL
  2. enter the logged in url in the NgxAuthFirebaseUIConfig under authGuardLoggedInURL
import {NgxAuthFirebaseUIModule} from 'ngx-auth-firebaseui';


NgxAuthFirebaseUIModule.forRoot(firebaseKey, firebaseAppNameFactory,
    {
      authGuardFallbackURL: 'examples/logged-out',
      authGuardLoggedInURL: 'examples/logged-in',
    }),

if the user is logged in, he will be redirected to examples/logged-in route (per example), otherwise he will be redirected to the examples/logged-out route

  1. import the LoggedInGuard in your router module
import {NgModule} from '@angular/core';
import {Routes, RouterModule} from '@angular/router';

import {LoggedInGuard} from 'ngx-auth-firebaseui';

const routes: Routes = [
  {
    path: '',
    redirectTo: 'home',
    pathMatch: 'full'
  },
  {
    path: 'secured',
    loadChildren: 'app/secured/secured.module#SecuredModule',
    canActivate: [LoggedInGuard]
  }
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule {
}

Built by and for developers ❤️ we will help you 👊


Youtube Videos

https://www.youtube.com/watch?v=qP5zw7fjQgo&feature=emb_logo&ab_channel=Fireship https://www.youtube.com/watch?v=KpfJCEvpS9g&t=2s&ab_channel=JsWiz


Who is using ngx-mailto? Awesome apps?

  1. Nahaus.de

Are you missing your project or you app? PR me to publish it on the README


Sponsors

jetbrains logo

This project is supported by jetbrains with 1 ALL PRODUCTS PACK OS LICENSE incl. webstorm

fireship.io logo

Best angular and firebase stuff by Jeff Delaney on firebase.io

check this out


Copyright (c) 2019-2022 Anthony Nahas. Licensed under the MIT License (MIT)

ngx-auth-firebaseui's People

Contributors

anabrierson avatar anthonynahas avatar asithade avatar aviyot avatar beeman avatar bespunky avatar blackholegalaxy avatar chriscurnow avatar crunck78 avatar davidtheprogrammer avatar erezshmiel avatar geromegrignon avatar gitter-badger avatar grant-wilson avatar greenkeeper[bot] avatar jeandat avatar jkiipper avatar johanraffin avatar mukaschultze avatar ondrashisko avatar rikwilbrink avatar semla avatar splaktar avatar stepanic avatar technicallyrice avatar the0rem avatar tiloio avatar urish avatar vbourdeix avatar vinggui avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ngx-auth-firebaseui's Issues

Feat: improve message toast's text

Bug Report or Feature Request (mark with an x)

- [ ] bug report -> please search issues before submitting
- [x] feature request

Versions

angular v7.1.4

Desired functionality

The developers should be able to interpolate the toast message input messageOnAuthSuccess with user.displayName

Mention any other details that might be useful

related to #156 - thanks for @Avrohom

Progress bar doesn't stop and onSuccess doesn't work

<ngx-auth-firebaseui (onSuccess)="printUser($event)" (onError)="printError($event)">

printError works perfectly but printUser doesnt work and I've noticed progress bar after I type user and pass never stop, it seems like some process is never stop to run or something like that.

Im using this theme: https://github.com/akveo/ngx-admin

Bug Report or Feature Request (mark with an x)

- [ X] bug report -> please search issues before submitting
- [ ] feature request

OS and Version

Windows 7

Versions

@angular-devkit/architect 0.6.0
@angular-devkit/build-angular 0.6.8
@angular-devkit/build-optimizer 0.10.5
@angular-devkit/core 7.0.5
@angular-devkit/schematics 0.6.0
@angular/cdk 7.0.3
@angular/fire 5.1.0
@angular/flex-layout 7.0.0-beta.19
@angular/material 6.4.7
@ngtools/webpack 6.0.8
@schematics/angular 0.6.0
@schematics/update 0.6.0
rxjs 6.1.0
typescript 2.7.2
webpack 4.8.3

Repro steps

go to login page, type user and pass and click on log in

The log given by the failure

no error shown in console

Desired functionality

printUser should show data

Show Popup with Terms of Service before Registering

Bug Report or Feature Request (mark with an x)

- [ ] bug report -> please search issues before submitting
- [x] feature request

Desired functionality

To be compliant with GDPR and to inform users what they are getting into BEFORE they have their e-mail stored in the firebase database. So open a customizable popup on pressing Register would be a great function. This should of course however be optional.

Angular 7

Bug Report or Feature Request (mark with an x)

- [ ] bug report -> please search issues before submitting
- [x] feature request

Versions

Is there a timeline for updating this repo for compatibility with Angular 7? thanks

An in-range update of firebase is breaking the build 🚨

The dependency firebase was updated from 5.5.1 to 5.5.2.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

firebase is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • ci/circleci: CircleCI is running your tests (Details).
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Bug: base alignment for the button icon providers

Bug Report or Feature Request (mark with an x)

- [ x] bug report -> please search issues before submitting
- [ ] feature request

Versions

angular material v6.4

Repro steps

due to the latest update of material v6.4, the svg inside the mat-icon component
should have the following css properties:

    overflow: hidden;
    vertical-align: baseline;

Make 'continue as guest' optional

Bug Report or Feature Request (mark with an x)

- [ ] bug report -> please search issues before submitting
- [x] feature request

Desired functionality

I would like to have the users only register by E-mail+Password and nothing else at the moment. Right now the Anonymous Login button can not be removed from the UI. Therefore I would love if it was possible to make the 'continue as guest' optional and thus removable.

Feat: ability to signin with auth providers via redirection instead of popup

Bug Report or Feature Request (mark with an x)

- [ ] bug report -> please search issues before submitting
- [x ] feature request

Versions

Angular v7.1.4
"@angular/fire": "^5.1.1",
"firebase": "^5.7.0"

Desired functionality

The developers should be able to choose between redirection and popup sign in

Mention any other details that might be useful

examples:

related to #156 - thanks for @Avrohom

Edit firebase user's profile and sync data with firestore

Bug Report or Feature Request (mark with an x)

- [ ] bug report -> please search issues before submitting
- [ x] feature request

Versions

angular v5
ngx-auth-firebaseui v7

Desired functionality

the user should be able any time to update his profile
like update the display name, phone number and email

Mention any other details that might be useful

include form validation for the input

Bug: select the right tab when forgot password action is requested

Bug Report or Feature Request (mark with an x)

- [ x] bug report -> please search issues before submitting
- [ ] feature request

Versions

angular 6.1.7
material 6.4.7

Repro steps

  1. click on forgot password
  2. the reset password tab is not selected

Desired functionality

after requesting to reset the password, the appropriate tab should be selected

An in-range update of @types/jest is breaking the build 🚨

The devDependency @types/jest was updated from 23.3.9 to 23.3.10.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

@types/jest is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • ci/circleci: Your tests failed on CircleCI (Details).
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Feat: flat auth design

Bug Report or Feature Request (mark with an x)

- [ ] bug report -> please search issues before submitting
- [x] feature request

Desired functionality

Developers should be able to use auth forms without cards.

Rationale

In some cases such as using dialog for authentication it may look weird to display auth forms in cards as it is already inside a dialog.

Mention any other details that might be useful

I have tried to make simple MVP of that but it proved to be more complex.
It seams to me that it would be beneficial to actually split auth.component to smart and dumb sections to make it easier to modify/swap the dumb parts.
As it seams to me like a more major change I decided to create this issue to discuss it. Moreover, I don't have that much time on my hands these days so I don't know if and when I would be able to work on that. So if anyone feels like doing it then please by all means do.

onSuccess doesn't get called.

Bug Report or Feature Request (mark with an x)

  • [x ] bug report -> please search issues before submitting
  • feature request

OS and Version?

Windows 10.

Versions

 _                      _                 ____ _     ___
/ \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|

/ △ \ | '_ \ / | | | | |/ _ | '__| | | | | | |
/ ___ | | | | (
| | || | | (| | | | || | | |
// __| ||_, |_,||_,|| _|||
|___/

Angular CLI: 7.1.3
Node: 8.11.1
OS: win32 ia32
Angular: 7.1.3
... animations, cli, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, platform-server, router

Package Version

@angular-devkit/architect 0.11.3
@angular-devkit/build-angular 0.11.3
@angular-devkit/build-optimizer 0.11.3
@angular-devkit/build-webpack 0.11.3
@angular-devkit/core 7.1.3
@angular-devkit/schematics 7.1.3
@angular/cdk 7.1.1
@angular/fire 5.1.1
@angular/flex-layout 7.0.0-beta.19
@angular/material 7.1.1
@ngtools/webpack 7.1.3
@schematics/angular 7.1.3
@schematics/update 0.11.3
rxjs 6.3.3
typescript 3.1.6
webpack 4.23.1

Repro steps

<ngx-auth-firebaseui *ngIf="thisUser==null"
[guestEnabled]="false"
(onSuccess)="printUser($event)"
(onError)="printError($event)">

<ngx-auth-firebaseui-user *ngIf="thisUser">

Desired functionality

I would like to see that the onSuccess gets called.

Mention any other details that might be useful

onSuccess doesn't get called. On the above sample, onSuccess does nothing and onError will send the error object 2 more times to the console. So without the above onError call, error event will show TWICE and WITH the onError call it will show FOUR TIMES on each unsuccessful login attempt.

Please note: this is not the same issue as #138 'Progress bar doesn't stop and onSuccess doesn't work', because in my case the progress-bar does stop. Also, the firebase User object gets updated after a successful login.

Bug: ERROR TypeError: Cannot read property 'photoURL' of null

Bug Report or Feature Request (mark with an x)

- [x] bug report -> please search issues before submitting
- [ ] feature request

Versions

latest

Repro steps

  1. sign in
  2. sign out
  3. an error will be logged

The log given by the failure

ERROR TypeError: Cannot read property 'photoURL' of null
    at AuthProcessService$$1.push.../dist/esm5/ngx-auth-firebaseui.es5.js.AuthProcessService$$1.getUserPhotoUrl

Desired functionality

no error logs

"Hallo" ... snackbar after registration by mail is not customizable

Bug Report or Feature Request (mark with an x)

- [] bug report -> please search issues before submitting
- [x] feature request

Desired functionality

After registration by e-mail the function signIn and signUp in auth-process.service.ts open a snack bar with "Hallo ${name}!". I think whether this should appear and what should be written there should be up to the implementer.

Firebase warning

Bug Report or Feature Request (mark with an x)

- [ x] bug report -> please search issues before submitting
- [ ] feature request

OS and Version?

macOS High Sierra

Versions

Angular CLI: 6.0.3
Node: 10.1.0
OS: darwin x64
Angular: 6.0.2

Repro steps

  1. include: NgxAuthFirebaseUIModule.forRoot(environment.firebaseTitleIXConfig) in app.module.ts imports section.
  2. ng serve

The log given by the failure

It looks like you're using the development build of the Firebase JS SDK.
When deploying Firebase apps to production, it is advisable to only import
the individual SDK components you intend to use.

For the module builds, these are available in the following manner
(replace with the name of a component - i.e. auth, database, etc):

CommonJS Modules:
const firebase = require('firebase/app');
require('firebase/');

ES Modules:
import firebase from 'firebase/app';
import 'firebase/';

Desired functionality

no warning.

Mention any other details that might be useful

Feature: update password or create new password

Bug Report or Feature Request (mark with an x)

- [ ] bug report -> please search issues before submitting
- [ x] feature request

Versions

angular v5
ngx-auth-firebaseui v7

Desired functionality

an authenticated user should be able to update or create a new password for his account

Mention any other details that might be useful

the new user should be validated with ngx-material-password-strength

Feature: "go back to page" after signing up

Bug Report or Feature Request (mark with an x)

- [ ] bug report -> please search issues before submitting
- [ x] feature request

the developer should provide either a function or a route to be executed after showing the confrim email component when signing up

The mobile number update does not update correctly. I tried with several versions and it keep indicating that mobile number format incorrect though i followed +497687667 or 004796727382 or 0835367373.

The mobile number update, once the auttenication is complete and the user-interface is open, it does not update correctly. I have tried it with several versions of mobile numbers as indicated in the placeholder-field(+497687667 or 004796727382 or 0835367373), but with mo luck as i kept receiving an error message stating it is incorrect format.

Feature: Configurable Snackbar messages

Bug Report or Feature Request (mark with an x)

- [ ] bug report -> please search issues before submitting
- [x ] feature request

OS and Version?

Windows 10

Desired functionality

Ability to modify or disable snackbar messages from appropriate configs

An in-range update of gulp-conventional-changelog is breaking the build 🚨

The devDependency gulp-conventional-changelog was updated from 2.0.3 to 2.0.5.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

gulp-conventional-changelog is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build is in progress (Details).
  • ci/circleci: Your tests failed on CircleCI (Details).

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Github auth doesnt appear to be working.

In Chrome, I click on github and see this:
image

Should this also have a popup or something redirecting me back to github? It may not be an issue, just curious on how the github login works.

Argument of type '"your_app_name_factory"' is not assignable to parameter of type '() => string'

Bug Report or Feature Request (mark with an x)

- [x ] bug report -> please search issues before submitting
- [ ] feature request

OS and Version?

Windows 10

Versions

Angular CLI: 7.0.7
Node: 10.13.0
OS: win32 x64
Angular: 7.0.4
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router

Package Version

@angular-devkit/architect 0.10.7
@angular-devkit/build-angular 0.10.7
@angular-devkit/build-optimizer 0.10.7
@angular-devkit/build-webpack 0.10.7
@angular-devkit/core 7.0.7
@angular-devkit/schematics 7.0.7
@angular/cdk 7.2.1
@angular/cli 7.0.7
@angular/fire 5.1.1
@angular/flex-layout 7.0.0-beta.23
@angular/material 7.2.1
@ngtools/webpack 7.0.7
@schematics/angular 7.0.7
@schematics/update 0.10.7
rxjs 6.3.3
typescript 3.1.6
webpack 4.19.1

Repro steps

Follow all the steps at https://ngx-auth-firebaseui.firebaseapp.com/getting-started + the extra configuration: https://github.com/AnthonyNahas/ngx-auth-firebaseui#2-configuration

The log given by the failure

ERROR in src/app/app.module.ts(22,5): error TS2345: Argument of type '"your_app_name_factory"' is not assignable to parameter of type '() => string'.

image

Desired functionality

Why this error?
and
How to config there is are no oauth providers?

Icons don't resize properly

Bug Report or Feature Request (mark with an x)

- [X ] bug report -> please search issues before submitting
- [ ] feature request

OS and Version?

OSX High Sierra

Versions

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.11.4
@angular-devkit/build-angular     0.13.0
@angular-devkit/build-optimizer   0.13.0
@angular-devkit/build-webpack     0.13.0
@angular-devkit/core              7.1.4
@angular-devkit/schematics        7.1.4
@angular/cdk                      7.3.0
@angular/fire                     5.1.1
@angular/flex-layout              7.0.0-beta.23
@angular/material                 7.3.0
@ngtools/webpack                  7.3.0
@schematics/angular               7.1.4
@schematics/update                0.11.4
rxjs                              6.3.3
typescript                        3.1.6
webpack                           4.29.0

Repro steps

  1. start a new cli project
  2. follow the instructions
  3. wrap the ui with a card like so:
  <mat-card>
   <mat-card-title>
       Please sign in
   </mat-card-title>
   <mat-card-content>
     <ngx-auth-firebaseui (onSuccess)="onSuccess($event)"
                          (onError)="onError($event)">
     </ngx-auth-firebaseui>
   </mat-card-content>
  </mat-card>
  1. Resize the window, the Icons are squished togather.

The log given by the failure

No log, see the image:
screen shot 2019-02-04 at 11 09 50

Desired functionality

The Icons are not supposed to go on top one another.

Mention any other details that might be useful

Probably bug and proposition: Social media icons are not shown

Bug Report or Feature Request (mark with an x)

- [ x] bug report -> please search issues before submitting
- [ x] feature request

Versions

ngx-auth-firebaseui v1.1.0

I've tried to use component ngx-auth-firebaseui-providers with [theme]="themes.MINI_FAB" and faced the following issue:
image

mat-icons do not show social network logos. I have the following structure in the assets:
image

Could you please take a look, am I doing something wrong?

As an alternative I would recommend using font-awesome set of icons. It seems that it has all popular social media icons and sometimes it's even easier to integrate to your project than dealing with SVG icons.

Need example to show authentication successful message

Need an example to show authentication success message to user.

OS and Version?

Windows 7, 8 or 10. Linux (which distribution).macOS(Yosemite ? El Capitan? Sierra ?)

Versions

Repro steps

The log given by the failure

Desired functionality

Need message to inform user about successful login to using firebase into my app.

Mention any other details that might be useful

OnlyEmailPasswordAuth not working

Bug Report or Feature Request (mark with an x)

- [X ] bug report -> please search issues before submitting
- [ ] feature request

OS and Version?

OSX High Sierra

Versions

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.11.4
@angular-devkit/build-angular     0.13.0
@angular-devkit/build-optimizer   0.13.0
@angular-devkit/build-webpack     0.13.0
@angular-devkit/core              7.1.4
@angular-devkit/schematics        7.1.4
@angular/cdk                      7.3.0
@angular/fire                     5.1.1
@angular/flex-layout              7.0.0-beta.23
@angular/material                 7.3.0
@ngtools/webpack                  7.3.0
@schematics/angular               7.1.4
@schematics/update                0.11.4
rxjs                              6.3.3
typescript                        3.1.6
webpack                           4.29.0

Repro steps

  1. start a new cli project
  2. follow the instructions
  3. in the settings pass "onlyEmailPasswordAuth" as true.
  4. The github/google/facebook... icons are still there.

The log given by the failure

No error logged.

Desired functionality

The Icons are not supposed to be seen?

An in-range update of @types/node is breaking the build 🚨

The devDependency @types/node was updated from 10.12.11 to 10.12.12.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

@types/node is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • ci/circleci: Your tests passed on CircleCI! (Details).
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Phone number is not supported - Help required?

Bug Report or Feature Request (mark with an x)

- [ ] bug report -> please search issues before submitting
- [X ] feature request

OS and Version?

Windows 10

Desired functionality

Signing up with phone number is not supported, according to the table on the home page.

Mention any other details that might be useful

Official demo of firebase UI can be found here: https://fir-ui-demo-84a6c.firebaseapp.com/

I'm happy to help out, but would be good to know some background information from current developers if possible.

An in-range update of rollup is breaking the build 🚨

The devDependency rollup was updated from 0.67.3 to 0.67.4.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

rollup is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).
  • ci/circleci: Your tests passed on CircleCI! (Details).

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of angular2 is breaking the build 🚨

There have been updates to the angular2 monorepo:

  • The dependency @angular/cdk was updated from 7.1.0 to 7.1.1.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

This monorepo update includes releases of one or more dependencies which all belong to the angular2 group definition.

angular2 is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • ci/circleci: Your tests passed on CircleCI! (Details).
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

Release Notes for fondant-friendship

Bug Fixes

  • a11y: don't handle disallowed modifier keys in typeahead mode (#14301) (700f20f), closes #14274
  • badge: badge instances not being cleaned up on destroy (#14265) (da3776f)
  • checkbox: poor color contrast for disabled checkbox (#14044) (9c86b5f)
  • chips: invert focus overlay on dark theme (#14204) (7af8d02)
  • drag-drop: add support for dragging svg elements in IE11 (#14215) (81db16c), closes #14214
  • drag-drop: dragged elements blurry in some browsers (#14299) (63174d2), closes #14283
  • drag-drop: only add top-level drop lists to drop group (#14130) (4acecd7)
  • drag-drop: remove expensive style recalculation (#14189) (f212345)
  • form-field: error when native select has no options (#14102) (0ef75ea), closes #14101
  • list: don't handle events when modifier key is pressed (#14313) (0c7ce7a)
  • menu: allow alternate roles to be set on menu item (#14165) (3f1588f), closes #14163
  • ng-add: do not throw if custom builder is used for "test" (#14203) (498a3d8), closes #14176
  • scrolling: default to vertical CSS class for invalid orientation (#14145) (dbe27c4)
  • scrolling: provide virtual scroll viewport as scrollable (#14168) (c552504)
  • slide-toggle: label not being read out by JAWS (#14304) (754414b), closes #4610
  • slide-toggle: label not being read out by screen reader on IE (#14259) (5264804)
  • stepper: showing hover state after tap on touch devices (#14074) (f3031ad)
  • tabs: avoid hitting change detection if text content hasn't changed (#14251) (9778af2), closes #14249
  • tabs: blurry text in scrolled header on some browsers (#14303) (f7c8026)
FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

feat: add support for google yolo (one tap)

Bug Report or Feature Request (mark with an x)

- [ ] bug report -> please search issues before submitting
- [x] feature request

Desired functionality

It could be a good idea to add support for Google Yolo (One Tap Login) when the Google authentication provider is activated.
You can find the documentation here: https://developers.google.com/identity/one-tap/web/overview
Also a video from the Google I/O 18: https://www.youtube.com/watch?v=kGGMgEfSzMw

Mention any other details that might be useful

This feature is included in the (firebaseui-web)[https://github.com/firebase/firebaseui-web] repo and in the (firebaseui-angular)[https://github.com/RaphaelJenni/FirebaseUI-Angular] repo which is a wrapper around the first one.

An in-range update of autoprefixer is breaking the build 🚨

The devDependency autoprefixer was updated from 9.3.1 to 9.4.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

autoprefixer is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • ci/circleci: Your tests passed on CircleCI! (Details).
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

Release Notes for 9.4 “Advance Australia”

Coat of Arms of Australia

Autoprefixer 9.4.0 brings limited autoplacement support to the IE CSS Grid.

Grid Autoplacement

If the grid option is set to "autoplace", limited autoplacement support is now added to the Autoprefixer CSS Grid translations. You can also use the /* autoprefixer grid: autoplace */ control comment to enable autoplacement directly in your CSS.

In order to use the new autoplacement feature, you must define both rows and columns when declaring the grid template.

/* Input CSS */

/ autoprefixer grid: autoplace /

.autoplacement-example {
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: auto auto;
grid-gap: 20px;
}

/* Output CSS */

/ autoprefixer grid: autoplace /

.autoplacement-example {
display: -ms-grid;
display: grid;
-ms-grid-columns: 1fr 20px 1fr;
grid-template-columns: 1fr 1fr;
-ms-grid-rows: auto 20px auto;
grid-template-rows: auto auto;
grid-gap: 20px;
}

.autoplacement-example > *:nth-child(1) {
-ms-grid-row: 1;
-ms-grid-column: 1;
}

.autoplacement-example > *:nth-child(2) {
-ms-grid-row: 1;
-ms-grid-column: 3;
}

.autoplacement-example > *:nth-child(3) {
-ms-grid-row: 3;
-ms-grid-column: 1;
}

.autoplacement-example > *:nth-child(4) {
-ms-grid-row: 3;
-ms-grid-column: 3;
}

Autoplacement support in Autoprefixer is currently very limited in what it can do. Please read the Grid Autoplacement support in IE section before using this new feature.

Thanks to @bogdan0083 for implementing the new feature, @Dan503 for documenting it, and @evandiamond for coming up with the initial idea.

Other Changes

  • Remove some unnecessary warnings for Grid (by @fanich37).
FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Provide basic auth guard

Bug Report or Feature Request (mark with an x)

- [ ] bug report -> please search issues before submitting
- [x] feature request

Desired functionality

I think it would be great to ship a default auth guard that allows that protecting routes for non-logged in users.

Mention any other details that might be useful

Currently using this:

import { Injectable } from '@angular/core'
import { CanActivate, Router } from '@angular/router'
import { AuthProcessService } from 'ngx-auth-firebaseui'
import { map } from 'rxjs/operators'
import { Observable } from 'rxjs'

@Injectable({
  providedIn: 'root',
})
export class IsLoggedInGuard implements CanActivate {

  constructor(private router: Router, private auth: AuthProcessService) {}

  canActivate(): Observable<boolean>  {
   return this.auth.afa.user
      .pipe(map(res => {
        if (res) {
          return true
        }
        this.router.navigate(['/login'])
        return false
      }))
  }
}

I'm happy to send in a PR if you like to see this implemented 👍

"export 'auth' was not found in 'firebase/app'

Bug Report or Feature Request (mark with an x)

- [X] bug report -> please search issues before submitting
- [ ] feature request

OS and Version?

Windows 10

Versions

Angular CLI: 7.2.3
Node: 10.15.0
OS: win32 x64
Angular: 7.2.2
... animations, cdk, common, compiler, compiler-cli, core
... elements, forms, http, language-service, material
... platform-browser, platform-browser-dynamic, platform-server
... router, service-worker

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.12.3
@angular-devkit/build-angular     0.12.3
@angular-devkit/build-optimizer   0.12.3
@angular-devkit/build-webpack     0.12.3
@angular-devkit/core              7.0.7
@angular-devkit/schematics        7.0.7
@angular/cli                      7.2.3
@angular/fire                     5.1.1
@angular/flex-layout              7.0.0-beta.23
@angular/pwa                      0.12.3
@ngtools/webpack                  7.2.3
@schematics/angular               7.0.7
@schematics/update                0.12.3
rxjs                              6.3.3
typescript                        3.2.4
webpack                           4.28.4

Webpack for ServerSide Rendering using AWS Lambda

const path = require('path');
const webpack = require('webpack');

module.exports = {
  entry: {
    server: './server.ts',
  },
  target: 'node',
  resolve: { extensions: ['.ts', '.js'] },
  externals: [/(node_modules|main\..*\.js)/],
  output: {
    libraryTarget: 'commonjs2',
    path: path.join(__dirname, 'dist'),
    filename: '[name].js',
  },
  module: {
    rules: [{ test: /\.ts$/, loader: 'ts-loader' }],
  },
  optimization: {
    minimize: false,
  },
  plugins: [
    new webpack.ContextReplacementPlugin(
      // fixes WARNING Critical dependency: the request of a dependency is an expression
      /(.+)?angular(\\|\/)core(.+)?/,
      path.join(__dirname, 'src'), // location of your src
      {}, // a map of your routes
    ),
    new webpack.ContextReplacementPlugin(
      // fixes WARNING Critical dependency: the request of a dependency is an expression
      /(.+)?express(\\|\/)(.+)?/,
      path.join(__dirname, 'src'),
      {},
    ),
  ],
};

My FirebaseModule

import { NgModule } from '@angular/core';
import { AngularFireModule } from '@angular/fire';
import { AngularFirestoreModule, FirestoreSettingsToken } from '@angular/fire/firestore';
import { NgxAuthFirebaseUIModule } from 'ngx-auth-firebaseui';
import { environment } from 'src/environments/environment';

@NgModule({
  imports: [
    AngularFireModule.initializeApp(environment.firebase),
    NgxAuthFirebaseUIModule.forRoot(environment.firebase,
      null,
      {
        enableFirestoreSync: true,
        toastMessageOnAuthSuccess: false,
        toastMessageOnAuthError: false
      }),
    AngularFirestoreModule.enablePersistence({
      experimentalTabSynchronization: true
    }),
  ],
  providers: [ { provide: FirestoreSettingsToken, useValue: {} } ]
})
export class NgFirebaseModule { }

package.json

{
  "name": "n-g-ws",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e",
    "server": "node local.js",
    "build": "npm run build:browser && npm run build:server && npm run build:serverless",
    "deploy": "serverless deploy",
    "build:browser": "ng build --prod",
    "build:server": "ng run nG-ws:server -c=production",
    "build:serverless": "webpack --config webpack.server.config.js --progress --colors --mode=production",
    "build:deploy": "npm run build && npm run deploy"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^7.2.1",
    "@angular/cdk": "^7.2.1",
    "@angular/common": "~7.2.1",
    "@angular/compiler": "~7.2.1",
    "@angular/core": "~7.2.1",
    "@angular/elements": "^7.2.1",
    "@angular/fire": "^5.1.1",
    "@angular/flex-layout": "^7.0.0-beta.23",
    "@angular/forms": "~7.2.1",
    "@angular/http": "~7.2.1",
    "@angular/material": "^7.2.1",
    "@angular/platform-browser": "~7.2.1",
    "@angular/platform-browser-dynamic": "~7.2.1",
    "@angular/platform-server": "~7.2.1",
    "@angular/pwa": "^0.12.2",
    "@angular/router": "~7.2.1",
    "@angular/service-worker": "~7.2.1",
    "@ng-toolkit/serverless": "^1.1.50",
    "@ng-toolkit/universal": "^1.1.50",
    "@nguniversal/common": "~7.1.0",
    "@nguniversal/express-engine": "~7.1.0",
    "@nguniversal/module-map-ngfactory-loader": "~7.1.0",
    "@ngx-translate/core": "^11.0.1",
    "@ngx-translate/http-loader": "^4.0.0",
    "@ngxs-labs/dispatch-decorator": "^1.1.0",
    "@ngxs/form-plugin": "^3.3.4",
    "@ngxs/logger-plugin": "^3.3.4",
    "@ngxs/router-plugin": "^3.3.4",
    "@ngxs/storage-plugin": "^3.3.4",
    "@ngxs/store": "^3.3.4",
    "@ngxs/websocket-plugin": "^3.3.4",
    "aws-serverless-express": "^3.2.0",
    "bufferutil": "^4.0.1",
    "core-decorators": "^0.20.0",
    "core-js": "^2.5.4",
    "cors": "~2.8.4",
    "cp-cli": "^1.1.0",
    "document-register-element": "^1.7.2",
    "express": "^4.16.4",
    "firebase": "^5.8.0",
    "firebaseui": "^3.5.2",
    "flag-icon-css": "^3.2.1",
    "flex-layout-srcs": "github:angular/flex-layout",
    "hammerjs": "^2.0.8",
    "ngx-auth-firebaseui": "^2.3.0",
    "rxjs": "^6.3.3",
    "ts-loader": "5.3.3",
    "tslib": "^1.9.0",
    "utf-8-validate": "^5.0.2",
    "webpack-cli": "^3.1.2",
    "ws": "^6.1.3",
    "xmlhttprequest": "^1.8.0",
    "zone.js": "~0.8.26"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^0.12.2",
    "@angular/cli": "~7.2.2",
    "@angular/compiler-cli": "~7.2.1",
    "@angular/language-service": "~7.2.1",
    "@ngxs/devtools-plugin": "^3.3.4",
    "@types/jasmine": "~3.3.8",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "~10.12.18",
    "codelyzer": "~4.5.0",
    "jasmine-core": "~3.3.0",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~4.0.0",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.1",
    "karma-jasmine": "~2.0.1",
    "karma-jasmine-html-reporter": "^1.4.0",
    "protractor": "~5.4.0",
    "ts-node": "~8.0.2",
    "tslint": "~5.12.1",
    "typescript": "~3.2.4",
    "webpack-cli": "~3.2.1",
    "opencollective": "^1.0.3",
    "serverless": "1.36.3",
    "serverless-apigw-binary": "^0.4.4"
  }
}

angular.json

{
  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
  "version": 1,
  "newProjectRoot": "projects",
  "projects": {
    "nG-ws": {
      "root": "",
      "sourceRoot": "src",
      "projectType": "application",
      "prefix": "",
      "schematics": {},
      "architect": {
        "build": {
          "builder": "@angular-devkit/build-angular:browser",
          "options": {
            "outputPath": "dist/browser",
            "index": "src/index.html",
            "main": "src/main.ts",
            "polyfills": "src/polyfills.ts",
            "tsConfig": "src/tsconfig.app.json",
            "assets": [
              "src/favicon.ico",
              "src/assets",
              "src/manifest.json",
              "src/robots.txt",
              {
                "glob": "**/*",
                "input": "node_modules/ngx-auth-firebaseui/assets/",
                "output": "./assets/"
              }
            ],
            "styles": [
              "./node_modules/@angular/material/prebuilt-themes/pink-bluegrey.css",
              "src/styles.sass"
            ],
            "scripts": [
              {
                "input": "node_modules/document-register-element/build/document-register-element.js"
              }
            ]
          },
          "configurations": {
            "production": {
              "fileReplacements": [
                {
                  "replace": "src/environments/environment.ts",
                  "with": "src/environments/environment.prod.ts"
                }
              ],
              "optimization": true,
              "outputHashing": "all",
              "sourceMap": false,
              "extractCss": true,
              "namedChunks": false,
              "aot": true,
              "extractLicenses": true,
              "vendorChunk": false,
              "buildOptimizer": true,
              "budgets": [
                {
                  "type": "initial",
                  "maximumWarning": "2mb",
                  "maximumError": "5mb"
                }
              ],
              "serviceWorker": true
            }
          }
        },
        "serve": {
          "builder": "@angular-devkit/build-angular:dev-server",
          "options": {
            "browserTarget": "nG-ws:build"
          },
          "configurations": {
            "production": {
              "browserTarget": "nG-ws:build:production"
            }
          }
        },
        "extract-i18n": {
          "builder": "@angular-devkit/build-angular:extract-i18n",
          "options": {
            "browserTarget": "nG-ws:build"
          }
        },
        "test": {
          "builder": "@angular-devkit/build-angular:karma",
          "options": {
            "main": "src/test.ts",
            "polyfills": "src/polyfills.ts",
            "tsConfig": "src/tsconfig.spec.json",
            "karmaConfig": "src/karma.conf.js",
            "styles": [
              "./node_modules/@angular/material/prebuilt-themes/pink-bluegrey.css",
              "src/styles.sass"
            ],
            "scripts": [],
            "assets": ["src/favicon.ico", "src/assets", "src/manifest.json"]
          }
        },
        "lint": {
          "builder": "@angular-devkit/build-angular:tslint",
          "options": {
            "tsConfig": ["src/tsconfig.app.json", "src/tsconfig.spec.json"],
            "exclude": ["**/node_modules/**"]
          }
        },
        "server": {
          "builder": "@angular-devkit/build-angular:server",
          "options": {
            "outputPath": "dist/server",
            "main": "src/main.server.ts",
            "tsConfig": "src/tsconfig.server.json"
          },
          "configurations": {
            "production": {
              "fileReplacements": [
                {
                  "replace": "src/environments/environment.ts",
                  "with": "src/environments/environment.prod.ts"
                }
              ],
              "optimization": true,
              "outputHashing": "none",
              "sourceMap": false,
              "namedChunks": true,
              "extractLicenses": false,
              "vendorChunk": false
            }
          }
        }
      }
    },
    "nG-ws-e2e": {
      "root": "e2e/",
      "projectType": "application",
      "prefix": "",
      "architect": {
        "e2e": {
          "builder": "@angular-devkit/build-angular:protractor",
          "options": {
            "protractorConfig": "e2e/protractor.conf.js",
            "devServerTarget": "nG-ws:serve"
          },
          "configurations": {
            "production": {
              "devServerTarget": "nG-ws:serve:production"
            }
          }
        },
        "lint": {
          "builder": "@angular-devkit/build-angular:tslint",
          "options": {
            "tsConfig": "e2e/tsconfig.e2e.json",
            "exclude": ["**/node_modules/**"]
          }
        }
      }
    }
  },
  "defaultProject": "nG-ws",
  "schematics": {
    "@schematics/angular:component": {
      "styleext": "sass"
    }
  }
}

Repro steps

Simply call npm run build. When it comes to the serverless part, it throws the warnings (Log 1). If I try to run the npm server (basicly node ./dist/server.js) for Server Side Rendering, it throws the errors (Log 2)

(Log 1) The warnings log from the build:

λ npm run build:serverless && npm run server

> [email protected] build:serverless C:\[path to project]
> webpack --config webpack.server.config.js --progress --colors --mode=production

Hash: f1460164ffa99388c614
Version: webpack 4.28.4
Time: 36517ms
Built at: 02/07/2019 12:53:51 PM
    Asset      Size  Chunks             Chunk Names
server.js  11.1 MiB       0  [emitted]  server
Entrypoint server = server.js
 [22] ./node_modules/rxjs/_esm5/index.js + 10 modules 24.9 KiB {0} [built]
      |    11 modules
 [25] ./node_modules/rxjs/_esm5/operators/index.js + 69 modules 133 KiB {0} [built]
      |    70 modules
 [57] ./node_modules/@angular/fire/index.js + 3 modules 5.54 KiB {0} [built]
      |    4 modules
 [84] external "fs" 42 bytes {0} [built]
[118] external "http" 42 bytes {0} [built]
[132] external "url" 42 bytes {0} [built]
[140] ./node_modules/@angular/fire/auth/index.js + 3 modules 3.96 KiB {0} [built]
      |    4 modules
[141] external "crypto" 42 bytes {0} [built]
[156] external "events" 42 bytes {0} [built]
[169] ./node_modules/@angular/fire/firestore/index.js + 12 modules 1010 KiB {0} [built]
      |    13 modules
[170] ./node_modules/@angular/platform-server/fesm5/platform-server.js + 1 modules 62.5 KiB {0} [built]
      |    2 modules
[224] external "https" 42 bytes {0} [built]
[229] external "zlib" 42 bytes {0} [built]
[437] ./dist/server/main.js 550 KiB {0} [built]
[492] ./server.ts + 2 modules 7.28 KiB {0} [built]
      | ./server.ts 1.61 KiB [built]
      |     + 2 hidden modules
    + 481 hidden modules

WARNING in ./node_modules/ngx-auth-firebaseui/esm5/ngx-auth-firebaseui.es5.js 162:31-35
"export 'auth' was not found in 'firebase/app'
 @ ./dist/server/main.js
 @ ./server.ts

WARNING in ./node_modules/ngx-auth-firebaseui/esm5/ngx-auth-firebaseui.es5.js 164:29-33
"export 'auth' was not found in 'firebase/app'
 @ ./dist/server/main.js
 @ ./server.ts

WARNING in ./node_modules/ngx-auth-firebaseui/esm5/ngx-auth-firebaseui.es5.js 166:30-34
"export 'auth' was not found in 'firebase/app'
 @ ./dist/server/main.js
 @ ./server.ts

WARNING in ./node_modules/ngx-auth-firebaseui/esm5/ngx-auth-firebaseui.es5.js 168:29-33
"export 'auth' was not found in 'firebase/app'
 @ ./dist/server/main.js
 @ ./server.ts

WARNING in ./node_modules/@angular/core/fesm5/core.js 18261:15-36
System.import() is deprecated and will be removed soon. Use import() instead.
For more info visit https://webpack.js.org/guides/code-splitting/
 @ ./server.ts 4:0-47 15:0-14

WARNING in ./node_modules/@angular/core/fesm5/core.js 18273:15-102
System.import() is deprecated and will be removed soon. Use import() instead.
For more info visit https://webpack.js.org/guides/code-splitting/
 @ ./server.ts 4:0-47 15:0-14

(Log 1) The errors log when running server:

> [email protected] server C:\Users\Waes-013\code\ng\ngws
> node local.js

C:\Users\Waes-013\code\ng\ngws\dist\server.js:248227
var facebookAuthProvider = new firebase_app__WEBPACK_IMPORTED_MODULE_19__["auth"].FacebookAuthProvider();
                                                                                  ^

TypeError: Cannot read property 'FacebookAuthProvider' of undefined
    at Module.<anonymous> (C:\Users\Waes-013\code\ng\ngws\dist\server.js:248227:83)
    at __webpack_require__ (C:\Users\Waes-013\code\ng\ngws\dist\server.js:21:30)
    at Object.JA/2 (C:\Users\Waes-013\code\ng\ngws\dist\server.js:245975:84214)
    at __webpack_require__ (C:\Users\Waes-013\code\ng\ngws\dist\server.js:245975:295)
    at Object.w9D1 (C:\Users\Waes-013\code\ng\ngws\dist\server.js:245975:333418)
    at __webpack_require__ (C:\Users\Waes-013\code\ng\ngws\dist\server.js:245975:295)
    at Object.V7fC (C:\Users\Waes-013\code\ng\ngws\dist\server.js:245975:157956)
    at __webpack_require__ (C:\Users\Waes-013\code\ng\ngws\dist\server.js:245975:295)
    at Object.K011 (C:\Users\Waes-013\code\ng\ngws\dist\server.js:245975:84708)
    at __webpack_require__ (C:\Users\Waes-013\code\ng\ngws\dist\server.js:245975:295)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] server: `node local.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] server script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\Waes-013\AppData\Roaming\npm-cache\_logs\2019-02-07T11_53_56_675Z-debug.log

Mention any other details that might be useful

It looks like the problem is how auth/firebase are imported and exported through ngx-auth-firebaseui package. Not sure though

It might be related to #112

Bug /Feature +1: reset registration form after signing up

Bug Report or Feature Request (mark with an x)

- [x ] bug report -> please search issues before submitting
- [x ] feature request

Versions

latest

Desired functionality

after signing up, the registration form should be cleared

Refactor: migrate `ngx-material-pages` to `@angular-material-extensions/pages` in the demo app

Bug Report or Feature Request (mark with an x)

- [ ] bug report -> please search issues before submitting
- [x] feature/refactor request related to the demo app

Versions

ngx-auth-firebaseui v2.2.1

Desired functionality

Since ngx-material-pages has been already migrated to @angular-material-extensions/pages, we should migrate that module in the demo app too!

Mention any other details that might be useful

@angular-material-extensions/pages

Version 10 of node.js has been released

Version 10 of Node.js (code name Dubnium) has been released! 🎊

To see what happens to your code in Node.js 10, Greenkeeper has created a branch with the following changes:

  • Added the new Node.js version to your .travis.yml
  • The new Node.js version is in-range for the engines in 1 of your package.json files, so that was left alone

If you’re interested in upgrading this repo to Node.js 10, you can open a PR with these changes. Please note that this issue is just intended as a friendly reminder and the PR as a possible starting point for getting your code running on Node.js 10.

More information on this issue

Greenkeeper has checked the engines key in any package.json file, the .nvmrc file, and the .travis.yml file, if present.

  • engines was only updated if it defined a single version, not a range.
  • .nvmrc was updated to Node.js 10
  • .travis.yml was only changed if there was a root-level node_js that didn’t already include Node.js 10, such as node or lts/*. In this case, the new version was appended to the list. We didn’t touch job or matrix configurations because these tend to be quite specific and complex, and it’s difficult to infer what the intentions were.

For many simpler .travis.yml configurations, this PR should suffice as-is, but depending on what you’re doing it may require additional work or may not be applicable at all. We’re also aware that you may have good reasons to not update to Node.js 10, which is why this was sent as an issue and not a pull request. Feel free to delete it without comment, I’m a humble robot and won’t feel rejected 🤖


FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

AuthProcessService not resolving if NgxAuthFirebaseUIModule in shared module

Bug Report or Feature Request (mark with an x)

- [ ] bug report -> please search issues before submitting
- [X] feature request

OS and Version?

Ubuntu 17.10

Versions

Angular CLI: 6.2.3
Node: 10.11.0
OS: linux x64
Angular: 6.1.8
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router, service-worker

Package Version

@angular-devkit/architect 0.8.3
@angular-devkit/build-angular 0.8.3
@angular-devkit/build-optimizer 0.8.3
@angular-devkit/build-webpack 0.8.3
@angular-devkit/core 0.8.3
@angular-devkit/schematics 0.8.3
@angular/cdk 6.4.7
@angular/cli 6.2.3
@angular/fire 5.0.2
@angular/flex-layout 6.0.0-beta.18
@angular/material 6.4.7
@angular/pwa 0.8.3
@ngtools/webpack 6.2.3
@schematics/angular 0.8.3
@schematics/update 0.8.3
rxjs 6.2.2
typescript 2.9.2
webpack 4.19.1

Repro steps

  1. create a shared module
    import { NgxAuthFirebaseUIModule, AuthProcessService } from 'ngx-auth-firebaseui';
    In the shared module initialize the NgxAuthFirebaseUIModule with forRoot(config)
    Add AuthProcessService to the providers array
  2. create a lazy loaded module
    import shared module
    set up lazy load routes
  3. create a component with a dep injection of AuthProcessService
    run the app

The log given by the failure

vendor.js:38502 ERROR Error: Uncaught (in promise): Error: StaticInjectorError(AppModule)[AuthProcessService$$1]:
StaticInjectorError(Platform: core)[AuthProcessService$$1]:
NullInjectorError: No provider for AuthProcessService$$1!
Error: StaticInjectorError(AppModule)[AuthProcessService$$1]:
StaticInjectorError(Platform: core)[AuthProcessService$$1]:
NullInjectorError: No provider for AuthProcessService$$1!
at NullInjector.push../node_modules/@angular/core/fesm5/core.js.NullInjector.get (vendor.js:37891)
at resolveToken (vendor.js:38129)
at tryResolveToken (vendor.js:38073)
at StaticInjector.push../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (vendor.js:37970)
at resolveToken (vendor.js:38129)
at tryResolveToken (vendor.js:38073)
at StaticInjector.push../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (vendor.js:37970)
at resolveNgModuleDep (vendor.js:45198)
at NgModuleRef_.push../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (vendor.js:45886)
at inject (vendor.js:38232)
at NullInjector.push../node_modules/@angular/core/fesm5/core.js.NullInjector.get (vendor.js:37891)
at resolveToken (vendor.js:38129)
at tryResolveToken (vendor.js:38073)
at StaticInjector.push../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (vendor.js:37970)
at resolveToken (vendor.js:38129)
at tryResolveToken (vendor.js:38073)
at StaticInjector.push../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (vendor.js:37970)
at resolveNgModuleDep (vendor.js:45198)
at NgModuleRef_.push../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (vendor.js:45886)
at inject (vendor.js:38232)
at resolvePromise (polyfills.js:3136)
at resolvePromise (polyfills.js:3093)
at polyfills.js:3195
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (polyfills.js:2743)
at Object.onInvokeTask (vendor.js:40640)
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (polyfills.js:2742)
at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (polyfills.js:2510)
at drainMicroTaskQueue (polyfills.js:2917)

Desired functionality

What would like to see implemented? The ability of using lazy loading with the library
What is the usecase? The NgxAuthFirebaseUIModule adds 600+K to the main if i eager load it.

How to set the 'goBackURL' parameter in a Angular 7 app?

Bug Report or Feature Request (mark with an x)

- [ ] bug report -> please search issues before submitting
- [ ] feature request
- [x] Help needed

OS and Version?

Windows 10.

Versions

 _                      _                 ____ _     ___
/ \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|

/ △ \ | '_ \ / | | | | |/ _ | '__| | | | | | |
/ ___ | | | | (
| | || | | (| | | | || | | |
// __| ||_, |_,||_,|| _|||
|___/

Angular CLI: 7.1.3
Node: 8.11.1
OS: win32 ia32
Angular: 7.1.3
... animations, cli, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, platform-server, router

Package Version

@angular-devkit/architect 0.11.3
@angular-devkit/build-angular 0.11.3
@angular-devkit/build-optimizer 0.11.3
@angular-devkit/build-webpack 0.11.3
@angular-devkit/core 7.1.3
@angular-devkit/schematics 7.1.3
@angular/cdk 7.1.1
@angular/fire 5.1.1
@angular/flex-layout 7.0.0-beta.19
@angular/material 7.1.1
@ngtools/webpack 7.1.3
@schematics/angular 7.1.3
@schematics/update 0.11.3
rxjs 6.3.3
typescript 3.1.6
webpack 4.23.1

Repro steps

<ngx-auth-firebaseui *ngIf="thisUser==null"
                     [guestEnabled]="false"
                     [goBackURL]="counter"
                     (onSuccess)="printUser($event)"
                     (onError)="printError($event)">
</ngx-auth-firebaseui>
<ngx-auth-firebaseui-user *ngIf="thisUser"></ngx-auth-firebaseui-user>

Desired functionality

I would like to see that after a login the user gets redirected to a certain page or route.

Mention any other details that might be useful

It doesn't seem that goBackURL has any affect at all on redirecting. Also, when signing out from inside the ngx-auth-firebaseui-user component the console shows the following error:

GET https://localhost:44367/null 404 null:1

So I assume that somehow we need to specify a redirect URL for after signing out. I couldn't find in the documentation anything related to this on how and where to define such.

Also, I was wondering if I can have provider login inside one of my windows / Component and not in an external window?

Last, where can I change the toast message greeting from 'hallo' to 'hello'?

Not Challenged to Accept Terms of Service or Privacy Policy on Registration

Bug Report or Feature Request (mark with an x)

- [X] bug report -> please search issues before submitting
- [ ] feature request

OS and Version?

Mac Sierra 10.12.6

Versions

Angular CLI: 7.1.4
Node: 11.0.0
OS: darwin x64
Angular: 7.2.1
... cdk, compiler, core, forms, http

Package Version

@angular-devkit/architect 0.11.3
@angular-devkit/build-angular 0.11.3
@angular-devkit/build-optimizer 0.11.3
@angular-devkit/build-webpack 0.11.3
@angular-devkit/core 7.1.3
@angular-devkit/schematics 7.1.4
@angular/animations 7.1.4
@angular/cli 7.1.4
@angular/common 7.1.4
@angular/compiler-cli 7.1.4
@angular/fire 5.1.1
@angular/flex-layout 7.0.0-beta.22
@angular/language-service 7.1.4
@angular/material 7.1.1
@angular/platform-browser 7.1.4
@angular/platform-browser-dynamic 7.1.4
@angular/router 7.1.4
@ngtools/webpack 7.1.3
@schematics/angular 7.1.4
@schematics/update 0.11.4
rxjs 6.3.3
typescript 3.1.6
webpack 4.23.1

Repro steps

  1. Add tosUr and/or privacyPolicyUrl to
  2. Register a user
  3. Not asked to check and accepts tos and pp

The log given by the failure

None

Desired functionality

I am challenged to accept terms of service and/or privacy policy before creating an account.

Mention any other details that might be useful

I am basing my understanding of the software based on this entry in the readme.

PS: if either tosUrl or privacyPolicyUrl are provided, the user will be asked to check and accepts tos and pp before registering a new account or sign in in anonymously.

Also, looked at #80 and its related commit 6768351. It looks like the legality dialog only open for guest only and not registration. It would be nice to have this or a simple set of checkboxes by a disabled register button.

Preventing automatic write to firestore

I have my own cloud function set up for new account creation and I have some other fields to add to user doc as well so I would like to stop this automatic write to firestore. How can I do that ?

Support for Cordova / Ionic?

Bug Report or Feature Request (mark with an x)

- [ ] bug report -> please search issues before submitting
- [X ] feature request

OS and Version?

Versions

Repro steps

The log given by the failure

Desired functionality

As title says, it's going to support cordova / ionic soon?

Mention any other details that might be useful

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.