这是一个Angular 6和Firestore应用程序。我正在尝试将service1导入到service2中,但得到了以下错误。
compiler.js Uncaught Error: Can't resolve all parameters for Service1
我读过这篇Medium article和这篇stackoverflow帖子,它们都没有提供洞察力。
这是我的代码。
首先,我在app.module.ts
中将这两个服务作为提供者导入并列出
#### app.module.ts ####
import { AuthenticationService } from './authentication.service';
import { UserService } from './user.service';
@NgModule({
...
providers: [
AuthenticationService,
UserService
]
...
})
service1 AuthenticationService
是这样的
#### authentication.service.ts ####
import { Injectable } from '@angular/core';
import { AngularFireAuth } from 'angularfire2/auth';
import * as firebase from 'firebase/app';
import { Router } from '@angular/router';
import { Observable } from 'rxjs';
import { User } from './models/user.model';
import { UserService } from './user.service';
@Injectable({
providedIn: 'root'
})
export class AuthenticationService {
user: Observable<firebase.User>;
constructor(private afAuth: AngularFireAuth,
private router: Router,
public userService: UserService ) {
this.user = afAuth.authState;
}
}
当我将service1 AuthenticationService
添加到service2 UserService
中的构造函数时,我得到上面列出的编译器错误。
#### user.service.ts ####
import { Injectable } from '@angular/core';
import * as firebase from 'firebase/app';
import {
AngularFirestore,
AngularFirestoreDocument,
AngularFirestoreCollection
} from 'angularfire2/firestore';
import { Observable } from 'rxjs';
import { User } from './models/user.model';
import { AuthenticationService } from './authentication.service';
@Injectable({
providedIn: 'root',
})
export class UserService {
usersCollection: AngularFirestoreCollection<User>;
users: Observable<User[]>;
username;
constructor(private afs: AngularFirestore,
private authserv: AuthenticationService) {
this.usersCollection = this.afs.collection('users');
this.users = this.usersCollection.valueChanges();
this.authserv.user.subscribe(user => {
if (user != null) {
console.log('Id is: ' + user.uid);
}
});
}
}
我是不是遗漏了什么代码?谢谢。
发布于 2018-08-01 00:40:22
正如上面的注释所指出的,不可能同时使用
service2
构造service1
作为依赖项service1
构造service2
作为依赖项你可以选择其中之一,但不能两个都做。
https://stackoverflow.com/questions/51617921
复制相似问题