【发布时间】:2017-01-23 10:25:17
【问题描述】:
这是我随机检索的数据代码:
mDataSelect.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
List<String> lst = new ArrayList<String>();
for (DataSnapshot ds : dataSnapshot.getChildren()) {
Collections.shuffle(lst);
lst.add(String.valueOf(ds.getKey()));
randomGenerator = new Random();
int index = randomGenerator.nextInt(lst.size());
String item = lst.get(index);
idofcaps.setText(item);
final DatabaseReference capsSelect = mDataSelect.child(item);
capsSelect.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dss) {
String post_Image = (String) dss.child("Image").getValue();
Picasso.with(StartCapsActivity.this).load(post_Image).into(caps);
String post_name = (String) dss.child("Translation").getValue();
translation.setText(post_name);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
});
我的屏幕上有一个下一步按钮,它具有从数据库中检索另一个图像的相同代码。但是,我不想再次检索相同的图像。如何防止这种冗余?
【问题讨论】:
-
我不知道 Firebase ...但由于它基于 Google BackEnd,我会说它应该具有(不同的)功能。
-
你能说得更具体点吗?我不明白独特的功能是什么意思。
-
firebaseDB.child("yourchild").Distinct(true)
-
没有这样的功能。我添加它。没有建议。
-
@TK52 Firebase 数据库中没有
distinct函数。但是根据定义,键在它们的集合中是唯一的,因此无论如何它在这里都无济于事。如果我正确理解了问题,则 OP 希望已经选择了一个密钥以使其不再符合条件。 ebert rivas 发布的解决方案是实现这一目标的一种方式。
标签: android firebase firebase-realtime-database firebase-storage