Java-如何获取所有城市名称(无重复)(Firestore)?

时间:2018-11-05 09:18:15

标签: firebase google-cloud-firestore

您好,请再次帮助我。我在文档中有这样的内容:

cities
 \
  - id_number
        \
         - "population": 860000
        \
         - "name": San Francisco
 \
  - id_number
        \
         - "population": 3900000
        \
         - "name": Los Angeles

但是如果我又有洛杉矶?

 \
  - id_number
        \
         - "population": 3900000
        \
         - "name": Los Angeles

我可以得到所有城市:

List<String> names = new ArrayList<String>(); //Duplicates
query.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
    @Override
    public void onComplete(@NonNull Task<QuerySnapshot> task) {
        if (task.isSuccessful()) {
            for (QueryDocumentSnapshot document : task.getResult()) {
                if (document != null) {
                    String name = document.getString("name");
                    names.add(name);
                }
            }
        }
    }
});

但是名称重复。如何解决?

1 个答案:

答案 0 :(得分:0)

Firestore在SQL中没有类似“选择不同”的内容。如果要从集合中某个字段中获取唯一字符串的列表,则必须查询集合中的所有文档并在客户端中对它们进行计数(就像现在一样),或者将列表存储在数据库的其他位置,可能是另一个收藏,并保持最新状态。