Аутсервис против AngularFirestore

я использую AuthService чтобы вызвать мою базу данных MySql с PHP API и, следовательно, мои функции PHP для моего приложения Ionic 3 Angular 4.

Вот как я звоню, чтобы получить 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,,

как это на Firestone

  constructor(private afService: AngularFirestore) { **this.users = afService.collection('users')**; }

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 основан на событиях, эти API, которые вы имеете на AngularFirestoreCollection а также AngularFirestoreDocument дает вам возможность передавать данные в форме, с которой вы знакомы (используя Observables в Angular)

Пожалуйста, перейдите по ссылкам, чтобы просмотреть документы, чтобы узнать больше об этих типах.

0

Другие решения

Я просто хочу понять, что делает вызов this.afService.collection?

Ans: —
Служба AngularFirestoreCollection является оболочкой для типов CollectionReference и Query собственного пакета Firestore SDK. Это универсальный сервис, который предоставляет вам строго типизированный набор методов для манипулирования и потоковой передачи данных. Этот сервис предназначен для использования в качестве @Injectable ().

AngularFirestoreCollection — это служба, которую вы используете для создания потоков коллекции и выполнения операций с данными в коллекции underyling.

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

0

По вопросам рекламы [email protected]