我找不到从firestore获取serverTimestamp的方法。无论是火店本身,还是角火。
我在解决方案中发现了很多github问题,但这些问题都不起作用。我猜那是因为版本不同?
"@firebase/app": "^0.1.10",
"angularfire2": "^5.0.0-rc.6.0",
"firebase": "^4.13.1",
我试过的代码替代方案:
import * as firebase from 'firebase';
firebase.firestore.FieldValue.serverTimestamp();
错误TypeError:无法读取未定义的属性“FieldValue”
import * as firebase from 'firebase';
firebase.database.ServerValue.TIMESTAMP;
错误TypeError:无法读取未定义的属性“ServerValue”
constructor( private afs: AngularFirestore ) { }
this.afs.firestore.FieldValue.serverTimestamp();
“FirebaseFirestore”类型中不存在“FieldValue”属性。
我在我的项目中有这个:
import { AngularFirestore } from 'angularfire2/firestore';
import { CollectionReference, Query } from '@firebase/firestore-types'; // Not usefull for your problem
import * as firebase from 'firebase';
@Injectable()
export class MyService {
constructor(private db: AngularFirestore) {
console.log("firebase.firestore.FieldValue.serverTimestamp()");
console.log(firebase.firestore.FieldValue.serverTimestamp());
}
}
在我的包裹中:
"firebase": "^4.12.1",
"angularfire2": "^5.0.0-rc.5-next"
我在packages.json文件中没有这个:
“@火力/应用程序”
做的只是:
import * as firebase from 'firebase';
进口所有的firebase模块,这不是一个好的生产实践。最好的做法是使用像这样的裸导入:
import * as firebase from 'firebase/app';
import 'firebase/firestore';
这只会在您的应用中导入Firestore模块。然后你可以这样做:
get timestamp() {
return firebase.firestore.FieldValue.serverTimestamp();
};
最后帮助卸载所有firebase相关的东西,正如我在我的问题中提到的那样:
"@firebase/app": "^0.1.10",
"angularfire2": "^5.0.0-rc.6.0",
"firebase": "^4.13.1",
并再次运行npm install firebase angularfire2 --save
。
这给了我:
"angularfire2": "^5.0.0-rc.7",
"firebase": "^5.0.1",
这解决了我所有的问题。
导入firebase为:
import * as firebase from 'firebase';
时间戳代码本身:
get timestamp() {
return firebase.firestore.FieldValue.serverTimestamp();
}