我尝试了很多方法,但找不到向Firestore添加至少四条路径的方法。
我的JSON树如下:
ActiveTrades -> Userid -> autogeneratedId -> data fields
我尝试过如下:
var ref = firebase.firestore();
var addOrder = ref.collection("ActiveTrades").doc(userId).add({
orderId: 1234
});
var ref = firebase.firestore();
var addOrder = ref.doc("ActiveTrades/"+userid).add({
orderId: 1234
});
答案 0 :(得分:1)
您遇到的第一个问题是,您只能将文档添加到集合中。您正在尝试将文档添加到另一个文档。请查看Cloud Firestore Data Model文档以便更好地理解。
您需要使用以下方法之一构建数据:
/ActiveTrades/{userId}/orders/{orderId}
要么
/ActiveTrades/{orderId}
如果您想添加自动ID,有两种方法可以执行此操作...
var ref = firebase.firestore();
var orderRef = ref.collection("ActiveTrades").doc(userId).collection("orders").doc();
console.log("The new order ID is", orderRef.id);
var addOrder = orderRef.set({
orderId: 1234
});
var ref = firebase.firestore();
var addOrder = ref.collection("ActiveTrades").doc(userId).collection("orders").add({
orderId: 1234
}).then(response => {
console.log("The new order ID is", response.id);
});
答案 1 :(得分:1)
至于获取自动生成的uid,只需致电.doc()
空like:
// Add a new document with a generated id. var newCityRef = db.collection("cities").doc(); // later... newCityRef.set(data);
在联机Firebase Web控制台中查看Firestore数据库。注意可用的选项。 ActiveTrades是文档的集合。 Documents 可以包含字段或sub 集合。虽然this is documented,但最容易(对我来说)在视觉上看到它。
所以,试着避免考虑“路径”,因为这不是XML / XPath,它甚至不是JSON - 它是Firestore。
您可以使用.collection(“collName”)获取位置.doc(“docName”... 你也可以用“collName / docName”简写来解决它。我相信。