【问题标题】:Delete Node with given id but unknown node id in Firebase在 Firebase 中删除具有给定 ID 但节点 ID 未知的节点
【发布时间】:2016-06-05 01:16:43
【问题描述】:

我有一个如下所示的 firebase 数据结构:

|---groups
|       |---group1
|       |       |---membernames
|       |              |---xy_unknownid
|       |                  |---givenname: "userx"
|       |              |---tv_unknownid
|       |                  |---givenname: "usery"

现在我想删除节点 xy_unknownid。但我只知道“名字”:userx。

我试图删除节点:

mFirebaseDatabaseReference
.child("groups")
.child("group1")
.child("membernames")
.child("$member")
.child("userx")
.getParent()
.setValue(null);

但这不起作用,因为“无效的 Firebase 数据库路径:$member。Firebase 数据库路径不得包含'.'、'#'、'$'、'['或']'”

所以我的问题是,我怎样才能删除节点:“xy_unknownid”只知道:“userx”。

提前致谢。

【问题讨论】:

    标签: android firebase


    【解决方案1】:

    试试这段代码,告诉我这是否有效,

    mFirebaseDatabaseReference.child("groups").child("group1").child("membernames").addListenerForSingleValueEvent(new ValueEventListener() {
       @Override
       public void onDataChange(DataSnapshot snapshot) {
          for(DataSnapshot dataSnapshot1:snapshot.getChildren())
          {
             if(dataSnapshot1.child("givenname").getValue().toString().equals("userx"))
             {
                 dataSnapshot1.getRef().setValue(null);
                 break;
             } 
          }
    
       }
       @Override
       public void onCancelled(FirebaseError firebaseError) {
       }
    });
    

    【讨论】:

    • 我感觉差不多了。它删除了节点“givenname:userx”。我能找到父母吗?
    • Firebase parent = dataSnapshot1.child("givenname").getRef() 你这样得到父母。
    • 它不工作。 with dataSnapshot1.child("givenname").getRef().setValue(null);正在删除“givenname:userx”父节点仍然存在
    • dataSnapshot1.getRef().setValue(null);。这将删除父节点。
    【解决方案2】:

    您需要分两步完成:

    1. 使用查询获取 xy_unknownid:

      mFirebaseDatabaseReference.child("groups").child("group1").child("membernames"). orderByChild("givenname").equalTo("user")
      
    2. 一旦您在回调中获得响应,您就可以使用密钥

      dataSnapshot.getKey()
      

    使用该键使用setValue(null)removeValue()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多