【发布时间】:2020-04-24 03:03:55
【问题描述】:
我正在尝试使用 firebase.firestore.FieldValue.delete() 从 React 应用程序中删除 Firebase 文档中的字段,但它不起作用。在文档和集合中读取和写入数据工作正常,但我很难让FieldValue 工作。我在src/firebase.js 中设置了 Firebase 实例,如下所示:
import app from 'firebase/app';
import 'firebase/firestore';
var config = {
******
};
class Firebase {
constructor() {
app.initializeApp(config);
this.fv = app.firestore.FieldValue;
this.db = app.firestore();
};
};
export default Firebase;
然后在我正在尝试使用FieldValue 的模块中:
import Firebase from "./firebase.js";
class App extends Component {
constructor(props) {
super(props);
this.firebase = new Firebase();
this.db = this.firebase.db;
this.fv = this.firebase.fv;
};
deleteFunction(id) {
this.db.collection("collection_id").doc("doc_id").update({
field_id: this.fv.delete()
});
}
};
但是,对于我来说,mentioned here 的导入或文档引用没有任何变化。我没有收到任何错误,并且我知道 firestore 实例工作正常,因为我正在使用它来设置和读取相同的数据。我还验证了我试图删除的 field_id 是正确的 id,并且 this.fv 是 FieldValue 通过控制台记录它们。
我错过了什么?我觉得这应该非常简单直接,而且我忽略了一些非常明显的东西,
【问题讨论】:
-
我刚刚尝试使用
"test"作为字段 id 并做到了:this.db.collection("collection_id").doc("doc_id").update({ "test": this.firebase.fv.delete() });并且成功了。为什么不删除动态字段id? -
代码中的
field_id是什么意思? -
我正在为前端的字段生成一些 id,并使用它们来引用文档中的值。
标签: javascript reactjs firebase google-cloud-firestore