File
Constructor
constructor(afs: AngularFirestore)
|
|
Parameters :
Name |
Type |
Optional |
afs |
AngularFirestore
|
No
|
|
Methods
Public
deleteUserData
|
deleteUserData(uid: string)
|
|
Parameters :
Name |
Type |
Optional |
uid |
string
|
No
|
Returns : Promise<any>
|
Public
getUserDocRefByUID
|
getUserDocRefByUID(uid: string)
|
|
Parameters :
Name |
Type |
Optional |
uid |
string
|
No
|
Returns : AngularFirestoreDocument<UserInfo>
|
Public
updateUserData
|
updateUserData(user: UserInfo)
|
|
Parameters :
Name |
Type |
Optional |
user |
UserInfo
|
No
|
Returns : Promise<any>
|
Public
afs
|
Type : AngularFirestore
|
|
import {Injectable} from '@angular/core';
import {AngularFirestore, AngularFirestoreDocument} from '@angular/fire/firestore';
import {UserInfo} from 'firebase';
export const collections = {
users: 'users',
};
@Injectable({
providedIn: 'root'
})
export class FirestoreSyncService {
constructor(public afs: AngularFirestore) {
// this.afs.firestore.settings({timestampsInSnapshots: true});
}
// get timestamp() {
// return firebase.firestore.FieldValue.serverTimestamp();
// }
public getUserDocRefByUID(uid: string): AngularFirestoreDocument<UserInfo> {
return this.afs.doc(`${collections.users}/${uid}`);
}
public deleteUserData(uid: string): Promise<any> {
const userRef: AngularFirestoreDocument<UserInfo> = this.getUserDocRefByUID(uid);
return userRef.delete();
}
public updateUserData(user: UserInfo): Promise<any> {
// Sets user$ data to firestore on login
const userRef: AngularFirestoreDocument<UserInfo> = this.getUserDocRefByUID(user.uid);
const data: UserInfo = {
uid: user.uid,
email: user.email,
displayName: user.displayName,
photoURL: user.photoURL,
phoneNumber: user.phoneNumber,
providerId: user.providerId
};
return userRef.set(data, {merge: true});
}
}