[英]Writing array in Firebase android
我正在嘗試將此內容寫入我的Firebase
親
- 約翰
- 1:蒂姆
- 2:山姆
- 3:本
我這樣做
String[] names = {"John","Tim","Sam","Ben"};
myFirebaseRef.setValue(names);
而且它沒有寫任何東西。
它可以使用適用於Firebase的Chrome控制台。
這不是你寫一個數組到firebase的方式嗎?
謝謝
.setValue()
方法需要List
而不是Array
。
此方法為該值接受的本機類型對應於JSON類型:Boolean,Long,Double,Map,String,Object,List,Object ...
Firebase ref = new Firebase("<my-firebase-app>/names"):
String[] names = {"John","Tim","Sam","Ben"};
List nameList = new ArrayList<String>(Arrays.asList(names));
// Now set value with new nameList
ref.setValue(nameList);
但是,我建議使用Map
而不是List
。 您可以使用名稱作為鍵,而不是使用基於索引的鍵(1,2,3 ...),因此更容易檢索。
Firebase ref = new Firebase("<my-firebase-app>/names"):
HashMap<String, String> names = new HashMap()<String, String>;
names.put("John", "John");
names.put("Tim", "Tim");
names.put("Sam", "Sam");
names.put("Ben", "Ben");
ref.setValue(names);
現在,如果要檢索數據,只需知道名稱即可。
Firebase ref = new Firebase("<my-firebase-app>/names"):
Firebase johnRef = ref.child("john");
johnRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
System.out.println(snapshot.value); // the String "John"
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
我不確定Java,但對於Web應用程序,您可以使用如下內容:
我想創建一個可重用的函數來添加/保存根節點下的任何對象(即使它在對象中的任何級別都有一個數據數組) 。 所以我想出了這個。 (我不確定是否符合最佳實踐,但它的工作非常順利)
SaveWholeData: function(sKey, oVal, bGenKey) {
bGenKey = bGenKey === undefined ? true: bGenKey;
var oOriginalProperty = angular.copy(oVal);
for (var property in oVal) {
if (oVal.hasOwnProperty(property) && oVal[property] instanceof Array) {
console.log(property);
oVal[property] = "$|$";
}
}
var sOwnRef = SaveDataByKey(sKey, oVal, bGenKey);
for (var property in oVal) {
if (oVal.hasOwnProperty(property) && oVal[property] === "$|$") {
oVal[property] = oOriginalProperty[property];
var updatedReference = sOwnRef + "/" + property;
SaveWholeData(updatedReference, oVal[property], false);
}
}
return true;
},
SaveDataByKey: function(sKey, oVal, bGenKey) {
if (bGenKey) {
var newPostKey = firebase.database().ref(sKey).push().key;
oVal.genKey = newPostKey;
firebase.database().ref(sKey).child(newPostKey).set(oVal);
return sKey + "/" + newPostKey;
}else{
firebase.database().ref(sKey).set(oVal);
return sKey;
}
}
因此,要在根下添加新用戶 users
,您撥打:
SaveWholeData("users", oUserInfo, true);
並更新現有用戶 :
SaveWholeData("users"+"/"+ oUserInfo.genKey, oUserInfo, true);
List sendingList = new ArrayList<>(Arrays.asList(SendingArray));
如果有任何錯誤,請按Alt + Enter 。 它會根據你的android studio版本糾正它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.