首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当onChildAdded事件被触发时,如何在Firebase中获取父项?

当onChildAdded事件被触发时,如何在Firebase中获取父项?
EN

Stack Overflow用户
提问于 2016-04-08 03:13:15
回答 2查看 820关注 0票数 0

考虑下面的代码示例:

代码语言:javascript
复制
// Get a reference to our posts
Firebase ref = new Firebase("https://docs-examples.firebaseio.com/web/saving-data/fireblog/posts");
ref.addChildEventListener(new ChildEventListener() {
// Retrieve new posts as they are added to the database
@Override
public void onChildAdded(DataSnapshot snapshot, String previousChildKey) {
    BlogPost newPost = snapshot.getValue(BlogPost.class);
    System.out.println("Author: " + newPost.getAuthor());
    System.out.println("Title: " + newPost.getTitle());
}
//... ChildEventListener also defines onChildChanged, onChildRemoved,
//    onChildMoved and onCanceled, covered in later sections.
});

当onChildAdded被触发时,是否可以在Firebase中获取DataSnapshot父项目?

EN

回答 2

Stack Overflow用户

发布于 2016-04-08 06:26:04

由于您只检索了子项,因此DataSnapshot不包含父项的数据。但在ref上可以很容易地访问它。

代码语言:javascript
复制
public void onChildAdded(DataSnapshot snapshot, String previousChildKey) {
  ref.addListenerForSingleValueEvent(new ValueEventListener() {
    public void onDataChange(DataSnapshot parent) {
      System.out.println("Got parent");
    }
    ...
  });
}
票数 2
EN

Stack Overflow用户

发布于 2020-03-31 16:18:06

我知道这个帖子已经很老了,但下面是对我有用的

代码语言:javascript
复制
@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
       DatabaseReference parent = dataSnapshot.getRef().getParent();
       if( parent != null){
             String parentNode = parent.getKey();
       }
 }

因此,基本上在Datasnapshot上调用.getRef()、.getParent()、.getKey()就可以了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36485171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档