我无法从我的数据库中获取数据。
我的代码:
Query query = FirebaseDatabase.getInstance().getReference("Quotes").startAt(5).endAt(10);
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot data: dataSnapshot.getChildren()){
String authorName = data.child("Name").getValue().toString();
String quoteGiven = data.child("Quote").getValue().toString();
name.setText("- " + authorName);
quote.setText(quoteGiven);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Toast.makeText(MainActivity.this, "Loading Quote failed", Toast.LENGTH_SHORT).show();
}
});
我想从第 5 个 child 到第 10 个 child 获取我的数据。
我试过:
Select random entry from Firebase Realtime Database in Java
get random value android firebase java
Firebase queries not working on Android even though the reference retrieves data
但是,它只显示我留下的硬编码文本而不是数据库中的文本吗?
谁能帮帮我,我不确定我哪里做错了
最佳答案
尝试使用 orderByKey()
:
FirebaseDatabase.getInstance().getReference("Quotes").orderByKey().startAt(String.valueOf(5)).endAt(String.valueOf(10));
这应该会为您提供数据库中从第 5 个键到第 10 个键的所有数据。
来自文档:
orderByKey()
Order results by child keys
https://firebase.google.com/docs/database/android/lists-of-data#sort_data
关于java - 如何从 Firebase Android 查询中的 StartAt 特定位置和 EndAt 特定位置获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59353861/