[英]how do you retrieve a auto generated id to delete data in firebase
[英]How to bypass unique ID and retrieve multiple auto generated child
我想使用自动生成的子代(Estab_url子代)检索多个子代。 这是我的代码。 我只能找一个孩子,它是随机的
final DatabaseReference establishments = database.getReference("establishments");
establishments.child(s2).child("Estab_url").addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
if (dataSnapshot.hasChildren()) {
// String value = dataSnapshot.getValue(String.class);
String sd = dataSnapshot.getKey();
Name.setText(sd);
}
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
如果您想读取每个孩子的URL值:
establishments.child(s2).child("Estab_url").addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
String url = dataSnapshot.child("url").getValue(String.class);
Name.setText(url);
}
如果这不是您想要的,请更新您的问题以重新描述该问题。
更新
如果您想捕获列表中的所有URL,则可以在侦听器之外设置列表,然后将每个URL添加进来:
List<String> urls = new LinkedList<String>();
establishments.child(s2).child("Estab_url").addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
String url = dataSnapshot.child("url").getValue(String.class);
urls.add(url);
// TODO: do something with the up-to-date list of URLs
}
但是请注意,您仍然不能在侦听器之外使用列表。 需要列表的最新内容的任何代码都需要在onChildAdded
内部(在这种情况下)进行调用/触发。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.