上火力
自动递增的数据我目前正在对火力地堡创造这样的事情:上火力
"Assets": {
"asset001" : {
"name": "DESK001",
"owner: "owner's name",
"brand: "HP",
},
"asset002" : {
"name": "NOTE001",
"owner: "owner's name",
"brand: "Dell",
},
...
}
但是,我不知道如何为自动递增的“asset001”的价值......我已经看到了推()方法,但后来我不知道如何检索数据。这是我到目前为止有:
的JavaScript
//Get the inputs ID from HTML
var inputName = document.getElementById("inputName");
var inputOwner = document.getElementById("inputOwner");
var inputBrand = document.getElementById("inputBrand");
var inputAsset = document.getElementById("inputAsset");
//Set values on FireBase
btnAsset.addEventListener('click', e => {
//Get inputs data
const asset = inputAsset.value;
const owner = inputOwner.value;
const brand = inputBrand.value;
const name = inputName.value;
//database reference
var rootRef = firebase.database().ref().child("Assets");
//setar os valores
rootRef.child(asset).child("owner").set(owner);
rootRef.child(asset).child("brand").set(brand);
rootRef.child(asset).child("name").set(name);
你似乎经历了很多麻烦试图使名称为您的资产。您创建密钥的方式在到达Asset999后会遇到麻烦。
确保您不必费心创建唯一密钥的最佳方法是让Firebase为您做好准备。然后一次性上传所有信息。
var newKey = rootRef.push().key;
var objectToUpload = {
"owner": owner,
"brand": brand,
"name": name
};
rootRef.child(newKey).set(objectToUpload);
嗯,它应该以这种方式工作,但接下来我必须制定某种规则或条件来保证即不重复“名称”字段,每个资产需要有某种用户需要知道的名称... –
如何在另一页上获得此newKey的引用?考虑到我在page1.html/page1.js上设置了数据,并且想要在另一个页面上的表格上列出这些数据(index.html/index.js),我可以得到“所有者”,“品牌” ,“名称”值,但我不能得到对象ID在那里..我使用这样的事情: var rootRef = firebase.database()。ref()。child(“Assets”); rootRef.on( “child_changed”,卡扣=> { 变种所有者= snap.child( “所有者”)VAL(); 变种品牌= snap.child( “品牌”)VAL(); var name = snap.child(“name”).val(); –
再次,使用对象而不是单个变量更有意义 –
Firebase文档明确建议对有序集合使用'push()':https://firebase.google.com/docs/database/web/lists-of-data。还有丰富的经验反对使用连续的,连续的数字索引,比如你在这里尝试。请参阅https://firebase.googleblog.com/2014/04/best-practices-arrays-in-firebase.html –