我有一個輸入字段,用戶可以在其中寫入新輸入或對之前添加的輸入進行更改。Firebase Js如何將值數組存儲到其各自鍵中的每一行
我能夠通過使用.map檢索輸入,但之後卡住,因爲我不知道如何存儲值。
var pickUp = $("input[name='pickUp[]']")
.map(function(){return $(this).val();}).get();
例如使用P1,P2 ...的鍵:
的輸入
我想要(下面的數據庫值被手動添加在)的結果:
我有一個輸入字段,用戶可以在其中寫入新輸入或對之前添加的輸入進行更改。Firebase Js如何將值數組存儲到其各自鍵中的每一行
我能夠通過使用.map檢索輸入,但之後卡住,因爲我不知道如何存儲值。
var pickUp = $("input[name='pickUp[]']")
.map(function(){return $(this).val();}).get();
例如使用P1,P2 ...的鍵:
的輸入
我想要(下面的數據庫值被手動添加在)的結果:
bankaujjwal和Ashiq Muhammed都有道理。但要使用他們的方法,我將不得不改變我設置輸入字段的方式。
所以我嘗試了另外一種方法。
林不知道如果它正確的做法。但是,既然它解決了我的問題,我會用它作爲答案。
var pNo= 1;
for (var i = 0; i <pickUp.length ; i++) {
var key = "p";
key+=pNo;
firebase.database().ref(uid + '/pickUp').update({
[key]: pickUp[i]
});
pNo++
}
參考鏈接:https://firebase.google.com/docs/database/web/read-and-write
let the dynamic values that you want to update are stored in a object
const data = {
p1: 'area1',
p2: 'area2',
p3: 'area3',
and so on....
}
const valueRef = firebase.database().ref('/Location_to _data/pickUp');
for (var key in data) {
if (data.hasOwnProperty(key)) {
valueRef.update({
[key]: data[key]
});
}
}
.update({})將它是否存在,或者如果它不存在使一個新的更新數據。 這將解決您的問題。
您可以通過爲所有輸入提供一個公共類名來形成一個對象。也給所有的輸入標籤對應的ID
比方說,類名是:
<input id='p1' class='objectClass' />
<input id='p2' class='objectClass' />
<input id='p3' class='objectClass' />
<input id='p4' class='objectClass' />
.
.
.
現在,在JavaScript中使用:
var i = 1;
var obj = {};
$('. objectClass').each(function(){
var key = "p" + $(this).attr('id');
obj[key] = $(this).val();
i++;
});
現在OBJ將已經存儲在格式的數據你的選擇。現在剩下的只是將其存儲在firebase數據庫中:
firebase.database().ref('/path_to_location/').set(obj);
但是,如果用戶決定添加更多的輸入,它將有p5,p6,p7等等。還會有少於4條記錄的情況。所以我沒有使用你顯示的方法,因爲它有固定的值。 – user7793635
相應地編輯了我的答案。你可以映射你想要更新的數據。 – bankaujjwal