Angular 4+Firebase2身份验证
我在尝试学习使用angular+firebase对用户进行身份验证时遇到了麻烦 当通过终端中的ng serve运行angular应用程序时,我收到此错误消息 错误 /用户/../Desktop/angular/fireauth/node_模块/angularfire2/angularfire2.d.ts 2,10:模块 “/Users/../Desktop/angular/fireauth/node_modules/@angular/core/index” 没有导出的成员“InjectionToken” 错误 /用户/../Desktop/angular/fireauth/node_modules/angularfire2/firebase.app.module.d.ts 1,10:模块 “/Users/../Desktop/angular/fireauth/node_modules/@angular/core/index” 没有导出的成员“InjectionToken”Angular 4+Firebase2身份验证,angular,typescript,firebase,angularfire,Angular,Typescript,Firebase,Angularfire,我在尝试学习使用angular+firebase对用户进行身份验证时遇到了麻烦 当通过终端中的ng serve运行angular应用程序时,我收到此错误消息 错误 /用户/../Desktop/angular/fireauth/node_模块/angularfire2/angularfire2.d.ts 2,10:模块 “/Users/../Desktop/angular/fireauth/node_modules/@angular/core/index” 没有导出的成员“InjectionTo
我也犯了同样的错误。对我来说,我的一个文件中有一个输入错误,它试图从angularFire2/导入。。。而不是angularfire2/。。。导致错误发生的 下面是一个基本的角度firestore设置示例 安装angularfire2和firebase 环境/environment.ts 模块导入和提供程序阵列 您的Firestore身份验证服务 最后但并非最不重要的一点是,确保在firebase控制台中正确设置了读写规则。并从firebase控制台启用一个或多个登录服务 来自console.firebase.google.com/project stuff/database/firestore/rules 之后,只要导入auth服务并将其传递到组件构造函数中,无论您需要在哪里使用auth服务 当我遇到同样的错误时,是因为从angualrFire2导入东西时出错。在运行ng serve时,它还抛出了一个错误,该错误表示该应用程序有多个模块,仅在情况下有所不同。意思是我试图从angularfire2/导入。。。和angularFire2/。。。希望你能找到你的错误
您还可以编写一个通用firestore服务,在类似于我们创建自定义身份验证服务的情况下,为您的应用程序处理所有crud操作。您使用的是哪一版本的angularfire?4.0.0-rc.2是最新版本请在此处显示一些代码,在何处以及如何使用InjectionToken,另外,让我们知道您使用的angularfire2版本也会很有帮助。注意:您不需要在任何地方包含injectionToken。它在angularFire2中使用,如果您使用angularFire2设置错误,则会导致抛出该错误。
npm install firebase angularfire2 --save
export const environment = {
production: false,
firebase: { // add your api stuff here
apiKey: '<your-key>',
authDomain: '<your-project-authdomain>',
databaseURL: '<your-database-URL>',
projectId: '<your-project-id>',
storageBucket: '<your-storage-bucket>',
messagingSenderId: '<your-messaging-sender-id>'
}
}
// Firebase Modules
import { AngularFireModule } from 'angularfire2';
import { AngularFirestoreModule } from 'angularfire2/firestore';
import { AngularFireAuthModule } from 'angularfire2/auth';
// Auth Service
import { AuthService } from './services/auth.service';
// Environment with firebase api key
import { environment } from './../environments/environment';
imports: [
BrowserModule,
AngularFireModule.initializeApp(environment.firebase),
AngularFirestoreModule.enablePersistence(),
AngularFireAuthModule,
RouterModule.forRoot(appRoutes)
]
providers: [
AuthService,
]
import { Injectable } from '@angular/core';
import { Router } from '@angular/router';
import { User } from './../../models/user.interface';
import * as firebase from 'firebase/app';
import { AngularFireAuth } from 'angularfire2/auth';
import { AngularFirestore, AngularFirestoreDocument } from 'angularfire2/firestore';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/switchMap';
@Injectable()
export class AuthService {
constructor (
private afAuth: AngularFireAuth,
private afs: AngularFirestore,
private router: Router
) { }
// Your authentication logic here.
}
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write;
}
}
}