Writing array in Firebase android

前端 未结 3 2110
时光说笑
时光说笑 2021-02-07 14:45

I am trying to write this to my Firebase

Parent

--0 : John

--1 : Tim

--2 : Sam

--3 : Ben

I am doing this

String[         


        
3条回答
  •  不知归路
    2021-02-07 15:06

    The .setValue() method needs a List rather than an Array.

    The native types accepted by this method for the value correspond to the JSON types: Boolean, Long, Double, Map, String, Object, List, Object...

    Firebase ref = new Firebase("/names"):
    String[] names = {"John","Tim","Sam","Ben"};
    List nameList = new ArrayList(Arrays.asList(names));
    // Now set value with new nameList
    ref.setValue(nameList);  
    

    But, I recommend using a Map instead of a List. Rather than having an index based key (1,2,3...), you could use the name as the key so it's easier to retrieve.

    Firebase ref = new Firebase("/names"):
    HashMap names = new HashMap();
    names.put("John", "John");
    names.put("Tim", "Tim");
    names.put("Sam", "Sam");
    names.put("Ben", "Ben");
    ref.setValue(names);
    

    And now if you want to retrieve the data, you just need to know the name.

    Firebase ref = new Firebase("/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) {
    
        }
    });
    

    Read the Firebase docs for more information.

提交回复
热议问题