请帮助我。我在文档中有这样的内容:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='parent'>
<div class='top' id='top'>TOP</div>
<div class='left'>LEFT</div>
<div class='right'>RIGHT</div>
</div>
如何在模拟器中显示人口最多的城市?我使用:
cities
\
- San Francisco
\
- "population": 860000
\
- Los Angeles
\
- "population": 3900000
\
- San Francisco
\
- "population": 680000
但是不起作用。如何从列表中知道人口最多的城市?
答案 0 :(得分:0)
想在Firestore中获得最大的城市人口吗?
只需使用如下所示的查询:
FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference citiesRef = rootRef.collection("cities");
Query query = citiesRef.orderBy("population", Direction.DESCENDING).limit(1);
根据orderBy()
属性,调用population
方法对城市降序进行排序,并调用limit(1)
将结果限制为仅一个城市,即人口最多的城市
编辑:
从您的另一个question(我已经为您提供了答案)中得知,将数据添加到数据库的方式是使用add()
方法。
这意味着每次添加新城市时,都会生成新的文档ID。换句话说,文档的ID是随机生成的密钥,而不是,就像我在您的架构中看到的那样。
因此,如果您使用的是官方文档中的示例,则在population
属性旁边,您可能还会拥有该城市的name
。
要显示人口最多的城市的名称,请使用以下代码行:
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");
Log.d(TAG, name);
}
}
}
}
});
您的logcat中的输出将是:
Los Angeles