Firestore Добавить пользовательские объекты со ссылочным атрибутом - PullRequest
0 голосов
/ 01 мая 2019

Я добавляю POJO в Firestore, который автоматически интерпретирует их как объекты JSON для базы данных. Однако я хочу, чтобы один из моих POJO имел то, что Firestore называет типом reference . Будет ли тип атрибута просто DocumentReference вместо String?

Я работаю над проектом Android с использованием Java.

Вот пример пользовательского объекта из Документов Firebase.

public class City {

private String name;
    private String state;
    private String country;
    private boolean capital;
    private long population;
    private List<String> regions;

    public City() {}

    public City(String name, String state, String country, boolean capital, long population, List<String> regions) {
        // ...
    }

    public String getName() {
        return name;
    }

    public String getState() {
        return state;
    }

    public String getCountry() {
        return country;
    }

    public boolean isCapital() {
        return capital;
    }

    public long getPopulation() {
        return population;
    }

    public List<String> getRegions() {
        return regions;
    }

    }

Затем добавить в базу данных


   City city = new City("Los Angeles", "CA", "USA",
       false, 5000000L, Arrays.asList("west_coast", "sorcal"));
   db.collection("cities").document("LA").set(city);

1 Ответ

0 голосов
/ 02 мая 2019

Я провел простое тестирование и понял это.Тип атрибута действительно DocumentReference для пользовательских объектов при добавлении непосредственно в Firestore.

Вот пример, где создатель Group является reference для пользователя в базе данных:

//Class POJO that holds data
public class Group {
   private String name;
   private DocumentReference creator;

   public Group(){}

   public Group(String name, DocumentReference ref) {
       this.name = name;
       this.creator = ref;
   }

   public String getName() { return this.name; }
   public DocumentReference getCreator() { return this.creator; }

}

// Add to database
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DocumentReference ref = db.collection("users").document(uid);

Group newGroup = new Group("My Group", ref);

db.collection("groups").document().set(newGroup);

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