我正在编写一个向Firebase添加记录(引用)的函数,但我想将记录数限制为3.函数如下所示:
addQuote(q) {
this.angularFireDatabase.list(this.getUserPath('/savedQuoteList')).valueChanges().subscribe( data => {
console.log("Length = "+data.length);
if(data.length<3){
this.angularFireDatabase.list(this.getUserPath('/savedQuoteList')).push(q);
console.log("Quote saved.");
} else {
console.log("Too many quotes in list.");
}
});
}
当列表长度为3时,该函数表明列表中的引号太多,这是预期的行为。但是,如果我现在在Firebase上手动删除一些记录,那么该函数会添加我之前未能添加的记录,直到列表长度为3(在某些情况下甚至为4)。
我知道这一定是因为我订阅了这个列表,因此正在收听它。我已经尝试将.unsubscribe()
添加到结尾,但之后根本没有添加记录。我怎样才能让它发挥作用?或者,有更简单的方法吗?
我知道这应该是直截了当的,但我还不熟悉可观测量,所以我需要一些帮助。非常感谢你。
答案 0 :(得分:0)
您可以尝试使用firebase本机方法来检查列表
首先 FutureOr<Null> Function(Listing) onSubmittedCallback) async {
await Navigator
.of(context)
...
import * as firebase from 'firebase';