Android, как вставить данные массива в базу данных Firebase - PullRequest
0 голосов
/ 04 мая 2018

я следовал это руководство по Google Firebase для вставки массива данных в базе данных. то, что я сделал, это для создания кода ниже, и он отлично работает:

 memberDatabaseReference= FirebaseDatabase.getInstance().getReference("member");

 save.setOnClickListener(new View.OnClickListener() {
        Map<String, String> member = new HashMap<>();
        @Override
        public void onClick(View view) {

       for(int i=1; i<5;i++){
                String value= "member "+String.valueOf(i);
                String id= memberDatabaseReference.push().getKey();
                  member.put("id", id);
                  member.put("name", value);
                sampleArray sampleArray = new sampleArray(member);
                memberDatabaseReference.child(id).setValue(sampleArray);
            }
        }
    });

Модель класса

 public class sampleArray {

    String id;
    Map<String,String> samplearray;

    public Map<String, String> getSamplearray() {
        return samplearray;
    }

    public void setSamplearray(Map<String, String> samplearray) {
        this.samplearray = samplearray;
    }

    public sampleArray(Map<String,String> samplearray) {
        this.samplearray = samplearray;

    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }
}

}

ДБ результаты здесь

db results are here

По сути, я хочу что-то вроде этого,

  • ---- автоматически сгенерированный ID
    --- id: XXXXX
    --- член: ХХХХХ * * один тысяча двадцать-одна

а не это

---- автоматически сгенерированный ID

--- sampleArray

--- id: XXXXX

--- член: XXXXX

Как я могу удалить эту строку "образец массива", потому что я знаю, что это из класса модели, но я не знаю, почему он там появляется. ИЛИ если есть какая-то хитрость в концепции массива для достижения этого.

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

Прежде всего, ссылка в вашем вопросе касается Cloud Firestore, а не базы данных Firebase Realtime. Но, чтобы получить структуру базы данных, которая выглядит следующим образом:

Firebase-root
    |
    --- member
          |
          --- autogenerated ID
                   |
                   --- id: "XXXXX"
                   |
                   --- name: "XXXXX"

Пожалуйста, используйте следующий класс модели:

public class MemberModel {
    private String id, name;

    public MemberModel() {}

    public MemberModel(String id, String name) {
        this.id = id;
        this.name = name;
    }

    public String getId() { return id; }
    public String getName() { return name; }
}

А для добавления данных в базу данных используйте следующие строки кода:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference memberRef = rootRef.child("member");
String id = memberRef.push().getKey();
Member member = new Member("member 1", id);
memberRef.child(id).setValue(member);
0 голосов
/ 04 мая 2018

Вы можете работать с хэш-картами, просто сделайте это, чтобы архивировать то, что вы хотите

поэтому просто измените эту строку

memberDatabaseReference.child(id).setValue(sampleArray);

к этому

memberDatabaseReference.child(id).updateChildren(member);

Помните, что метод setValue полностью заменяет документ (указанную ссылку) новыми данными

И

Метод 'updateChildren' просто обновляет определенные поля или добавляет такие поля, если их раньше не было.

надеюсь, это поможет

Удачного кодирования!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...