I have been trying to add timestamp field to my firestore documents.
I am also sharing a PDF with relevant code.
The project environment is Ionic 6.12.0.
Trying to access Firestore.FieldValue.serverTimestamp()
import { Injectable } from '@angular/core';
import { AngularFirestore } from '@angular/fire/firestore';
import {firebase} from '@firebase/app';
@Injectable({
providedIn: 'root'
})
export class FireTimestampService {
constructor(private afs: AngularFirestore) { }
timestamp(): any {
return this.afs.FieldValue.serverTimestamp();
}
timestamp2(): any {
return firebase.firestore.FieldValue.serverTimestamp();
}
}
Actual Usage once firestore is accessible:
import { Injectable } from '@angular/core';
import { AngularFirestore, AngularFirestoreDocument } from '@angular/fire/firestore';
import * as firebase from 'firebase';
@Injectable({
providedIn: 'root'
})
type DocPredicate<T> = string | AngularFirestoreDocument<T>;
export class FireTimestampService {
constructor(private afs: AngularFirestore) { }
doc<T>(ref: DocPredicate<T>): AngularFirestoreDocument<T> {
return typeof ref === 'string' ? this.afs.doc<T>(ref) : ref;
}
timestamp(): any {
return firebase.firestore.FieldValue.serverTimestamp();
}
set<T>(ref: DocPredicate<T>, data: any ) {
const timestamp = this.timestamp;
return this.doc(ref).set({
...data,
updatedAt: timestamp,
createdAt: timestamp
});
}
}
My list of node-modules: ├── @angular-devkit/[email protected] ├── @angular/[email protected] ├── @angular/[email protected] ├── @angular/[email protected] ├── @angular/[email protected] ├── @angular/[email protected] ├── @angular/[email protected] ├── @angular/[email protected] ├── @angular/[email protected] ├── @angular/[email protected] ├── @angular/[email protected] ├── @angular/[email protected] ├── @capacitor/[email protected] ├── @capacitor/[email protected] ├── @capacitor/[email protected] ├── @capacitor/[email protected] ├── @ionic-native/[email protected] ├── @ionic-native/[email protected] ├── @ionic-native/[email protected] ├── @ionic/[email protected] ├── @ionic/[email protected] ├── @types/[email protected] ├── @types/[email protected] ├── @types/[email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] └── [email protected]