我正在使用AuthService
来通过PHP api调用MySql数据库,因此我的Ionic 3 Angular 4应用程序的PHP函数也是如此。
这就是我打电话来获取userData
的方式,
import { AuthService } from "../../providers/auth-service";
...
constructor(
public authService: AuthService,
private loadingCtrl: LoadingController
) {
const data = JSON.parse(localStorage.getItem("userData"));
this.userDetails = data.userData;
this.userPostData.uid = this.userDetails.uid;
let loader = this.loadingCtrl.create({
content: 'Please wait...'
});
}
我还有另一个使用AngularFirestore
import { AngularFirestore, AngularFirestoreDocument } from 'angularfire2/firestore';
import { AngularFireAuth } from 'angularfire2/auth';
import { Storage } from '@ionic/storage';
并这样叫constructor
private users: AngularFirestoreDocument<{}>;
constructor(
public navCtrl: NavController,
private afService: AngularFirestore,
private storage: Storage,
private loadingCtrl: LoadingController,
private afAuth: AngularFireAuth
) {
this.uid = localStorage.getItem('uid');
this.users = this.afService.collection('users').doc(this.uid);
let loader = this.loadingCtrl.create({
content: 'Please wait...'
});
loader.present();
this.users.valueChanges()
.subscribe((res: any) => {
this.canDoMessage = res.canDoMessage;
loader.dismiss();
}, error => {
loader.dismiss();
});
}
我只想了解调用this.afService.collection
是做什么的?
基本上我要问的是如何在AuthService上调用“用户”
constructor( public authService: AuthService,,
在凡世通上像这样
constructor(private afService: AngularFirestore) { **this.users = afService.collection('users')**; }
答案 0 :(得分:0)
您将AngularFirestore
作为依赖项注入,并且您将在afService
中拥有它的实例。
调用this.afService.collection('users')
时,它会返回 AngularFirestoreCollection<{}>
给您,它是Firestore SDK的CollectionReference
和Query
类型的包装。这是一项常规服务,可为您提供一组强类型的方法,例如valueChanges()
,snapshotChanges()
,stateChanges()
和auditTrail()
,用于流传输数据。
调用this.afService.collection('users').doc(this.uid)
时,它将返回一个 AngularFirestoreDocument<{}>
,它是本机Firestore SDK的DocumentReference
类型的包装。这是一项常规服务,可为您提供一组强类型的方法,例如valueChanges()
和snapshotChanges()
,用于流传输数据。
由于Firebase是基于事件的,因此您在AngularFirestoreCollection
和AngularFirestoreDocument
上拥有的这些API为您提供了一种以熟悉的形式流数据的方法(使用Observable
在Angular中)
请点击链接以浏览文档,以详细了解这些类型。
答案 1 :(得分:0)
我只想了解调用this.afService.collection的作用?
答案:- AngularFirestoreCollection服务是本机Firestore SDK的CollectionReference和Query类型的包装。它是一项通用服务,可为您提供一组用于处理和流传输数据的强类型方法。该服务旨在用作@Injectable()。
AngularFirestoreCollection是用于创建集合流并在底层集合上执行数据操作的服务。
this.itemsCollection = afs.collection<Item>('items');
尝试此代码
this.users = this.afService.collection<user>('users').doc(this.uid);
查看链接:-https://github.com/angular/angularfire2/blob/master/docs/firestore/collections.md