Kartik Dolas
Kartik Dolas

Reputation: 761

Property 'auth' does not exist on type 'typeof import("/home/kartik/Desktop/Ecommerce/ecommerce/node_modules/firebase/index")'. ts(2339)

I am a beginner at FireBase and I am trying to implement Google login with FireBase using angular. I am getting the above error at auth. I am hereby attaching login.component.ts and dev depencencies of package.json, package.lock.json.

login.component.ts

import { Component, OnInit } from '@angular/core';
import * as firebase from 'firebase';
import 'firebase/auth';
import {AngularFireAuth} from 'angularfire2/auth'

@Component({
  selector: 'app-login',
  templateUrl: './login.component.html',
  styleUrls: ['./login.component.css']
})
export class LoginComponent implements OnInit {

  constructor(private afAuth:AngularFireAuth) {
    firebase.default.database
   }

  ngOnInit(): void {
  }
  Login(){
    this.afAuth.auth.signInWithRedirect(new firebase.auth.GoogleAuthProvider()) //error due to this line.
  }

}

package.json

"dependencies": {
    "@angular/animations": "~11.1.0",
    "@angular/cdk": "^11.2.12",
    "@angular/common": "~11.1.0",
    "@angular/compiler": "~11.1.0",
    "@angular/core": "~11.1.0",
    "@angular/fire": "^6.0.4-canary.9a26fbe",
    "@angular/forms": "~11.1.0",
    "@angular/localize": "~11.1.0",
    "@angular/material": "^11.2.12",
    "@angular/platform-browser": "~11.1.0",
    "@angular/platform-browser-dynamic": "~11.1.0",
    "@angular/router": "~11.1.0",
    "@ng-bootstrap/ng-bootstrap": "^9.1.1",
    "angularfire2": "^5.4.2",
    "bootstrap": "^5.0.1",
    "firebase": "^8.6.2",
    "firebase-tools": "^9.10.2",
    "g": "^2.0.1",
    "rxjs": "~6.6.0",
    "tslib": "^2.0.0",
    "zone.js": "~0.11.3"
  },

package-lock.json

...

"@angular/fire": {
      "version": "6.0.4-canary.9a26fbe",
      "resolved": "https://registry.npmjs.org/@angular/fire/-/fire-6.0.4-canary.9a26fbe.tgz",
      "integrity": "sha512-LVskM344FFLQ34Dyc6ngN6n+c8kZODm3T3Sdzu43P4wmpaoocL06/3HMvXlQiwBdE3bH+F+tdGu2VYxgQZCWCA==",
      "requires": {
        "tslib": "^2.0.0"
      }
    },

...

"angularfire2": {
      "version": "5.4.2",
      "resolved": "https://registry.npmjs.org/angularfire2/-/angularfire2-5.4.2.tgz",
      "integrity": "sha512-7brktOHPObHgMnCN+QkakyCBr2mnxMxMSVLlEZ7OF70LjFIQz/RV3t5a7cH1SjystbY+kzR3qYvn/irlWs27/Q==",
      "requires": {
        "@angular/fire": "5.4.2"
      },
      "dependencies": {
        "@angular/fire": {
          "version": "5.4.2",
          "resolved": "https://registry.npmjs.org/@angular/fire/-/fire-5.4.2.tgz",
          "integrity": "sha512-QzB5d1wtqr9jxfsVNv2+569MlfK4/QrrpNy0IngOHdxS4FBbXqMOcx37iv1m2mzJv9zlGUddUX44IZP5Xfb3cw=="
        }
      }
    },

Upvotes: 4

Views: 5117

Answers (1)

eko
eko

Reputation: 40647

Your dependencies are the old ones. I suggest you to update them and use the new syntax:

import { AngularFireAuth } from '@angular/fire/auth';
import { AngularFirestore } from '@angular/fire/firestore';
import { AngularFireDatabaseModule } from '@angular/fire/database';

import * as firebase from 'firebase/app';

with [email protected]

There complete tutorial about firebase authentication which I find really useful; here's the link

The old imports are

import { AngularFireAuthModule } from 'angularfire2/auth';

Upvotes: 1

Related Questions