簡體   English   中英

Angular Firebase:導入問題

[英]Angular Firebase: issue with imports

我創建了一個服務文件來管理Firebase用戶身份驗證。 但是,我在auth.service.ts文件中找到了導入錯誤。 下面是錯誤,后面是導入以及ts文件中的代碼。

錯誤:

src / app / core / auth.service.ts(2,10)中的錯誤:錯誤TS2305:模塊'“ C:/ Users / Zakariah Siyaji / Desktop / or-api / node_modules / angularfire2 / index”沒有導出的成員'AngularFireAuth'。 src / app / core / auth.service.ts(2,27):錯誤TS2305:模塊'“ C:/ Users / Zakariah Siyaji / Desktop / or-api / node_modules / angularfire2 / index”'沒有導出的成員'AngularFireDatabase ”。 src / app / core / auth.service.ts(2,48):錯誤TS2305:模塊'“ C:/ Users / Zakariah Siyaji / Desktop / or-api / node_modules / angularfire2 / index”'沒有導出的成員'FirebaseAuthState ”。 src / app / core / auth.service.ts(2,67):錯誤TS2305:模塊'“ C:/ Users / Zakariah Siyaji / Desktop / or-api / node_modules / angularfire2 / index”'沒有導出的成員AuthProviders ”。 src / app / core / auth.service.ts(2,82):錯誤TS2305:模塊'“ C:/ Users / Zakariah Siyaji / Desktop / or-api / node_modules / angularfire2 / index”'沒有導出的成員AuthMethods ”。 src / app / core / auth.service.ts(2,95):錯誤TS2305:模塊'“ C:/ Users / Zakariah Siyaji / Desktop / or-api / node_modules / angularfire2 / index”'沒有導出的成員'AngularFire ”。

我「wdm」:編譯失敗。

進口:

從“ angularfire2”導入{AngularFireAuth,AngularFireDatabase,FirebaseAuthState,AuthProviders,AuthMethods,AngularFire};

在package.json文件夾中還可以找到angularfire2,版本號為:“ ^ 5.0.0-rc.11”

碼:

import { Injectable } from '@angular/core';
import { AngularFireAuth, AngularFireDatabase, FirebaseAuthState, AuthProviders, AuthMethods, AngularFire } from "angularfire2";
import { Router } from "@angular/router";

@Injectable({
  providedIn: 'root'
})


export class AuthService {
  authState: FirebaseAuthState = null;

  constructor(private af: AngularFire, private db: AngularFireDatabase, private router: Router) {
    af.auth.subscribe((auth) => {
      this.authState = auth;
    });
  }


  //Return true if user is logged in
  get authenticated(): boolean {
  return this.authState !== null;
}
  //Returns current user
  get currentUser(): any {
  return this.authenticated ? this.authState.auth : null;
}

 //Returns current user UID
 get currentUserId(): string {
 return this.authenticated ? this.authState.uid : '';
}

// Anonymous User
get currentUserAnonymous(): boolean {
return this.authenticated ? this.authState.Anonymous : false
}

//Returns current user display name or guest
get currentUserDisplayName(): string {

if (!this.authenticated) { return 'GUEST' }
else if (this.currentUserAnonymous) { return 'ANONYMOUS'}
else { return this.authState.auth.displayName || 'OAUTH USER'}

}

//login through a Gmail account
googleLogin(): Promise<FirebaseAuthState> {
return this.socialSignIn(AuthProviders.Google);
}

private socialSignIn(provider: number): Promise<FirebaseAuthState> {
  return this.af.auth.login({provider, method: AuthMethods.popup})
  .then(() => this.updateUserData() )
  .catch(error => console.log(error));
}

private updateUserData(): void {
  //Writes user name and email to realtime db
  //useful if your app displays information about users or for admin features

  let path = `users/${this.currentUserId}`; //Endpoint on Firebase
  let data = { name: this.currentUser.displayName, email: this.currentUser.email, }

  this.db.object(path).update(data)
  .catch(error => console.log(error));
}


}

錯誤消息非常清楚。 您從錯誤的路徑導入。 以下是一些正確的示例,請查看導入位置。

import { AngularFireAuth } from 'angularfire2/auth';
import { AngularFireDatabase } from 'angularfire2/database';

您只需要更新您的導入語句。 例如,要導入auth和db模塊,您應該執行以下操作:

import { AngularFireModule } from 'angularfire2';
import { AngularFireDatabaseModule, AngularFireDatabase, FirebaseListObservable } from 'angularfire2/database';
import { AngularFireAuthModule, AngularFireAuth } from 'angularfire2/auth';

該文檔提供了完整的升級路徑

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM