2017-08-29 34 views
0

我在從firebase中的其他輔助字符串數組中刪除孩子字符串時遇到問題。當用戶創建羣聊時,他們包括共享者。這些共享者被添加到字符串數組中,然後在製作時添加到firebase中。現在,當用戶點擊離開組聊天按鈕時,我無法找到一種方法從數組中刪除當前用戶的用戶標識,其中我已經檢查過他們的用戶標識是否在數組中。我嘗試了所有我能做的,首先我嘗試了ref.child(「Group Chats」)。child(groupKey).child(「sharers」)。child(myriad).removeValue,並且沒有工作,我也嘗試創建一個沒有當前用戶ID的新數組,刪除舊數組並將新數組添加到firebase,都不起作用,現在我轉向一些同行編碼器。我如何從firebase中的一組uid中刪除當前用戶。如何從firebase中的數組中刪除字符串值

 let action = UIAlertAction(title: "Leave Group Chat", style: .default, handler: {(alert : UIAlertAction) -> Void in 
       let ref = FIRDatabase.database().reference() 
        if let keyp = self.groupChats[indexPath.row].key { 

         ref.child("Group Chats").child(keyp).child("sharers").child(uip).removeValue() 



               } 
        self.groupChat.removeAll() 
        self.pull() 
        self.pullFromSharers() 
        self.tableViewManage.reloadData() 

       }) 

Firebase

謝謝!

+0

而不是removeValue轉到您想要刪除的適當的索引並嘗試setValue(nil) –

+0

我會試試,謝謝 –

+0

讓我知道它是否有效,我可以添加它作爲答案。 –

回答

1

與OP討論後,我們已經找到了解決辦法

問題是,你的路徑計算不正確,你的路徑是所獲得的價值,而不是孩子,所以修改代碼如下:

ref.child("Group Chats").child(keyp).child("sharers").observe(.value, with: { snapshot in 
    if let sharers = snapshot.value as? [String] { 
    for i in 0..<sharers.count { 
    if sharers[i] == uip { 
     ref.child("Group Chats").child(keyp).child("sharers").child("\(i)").removeValue() 
    } 
    } 
    } 

    }) 
+1

完美的再次感謝男人 –

0

我在angularjs中使用了這個簡單的方法。我認爲你也需要同樣的東西。試試這會幫助你。

var url = "your db path is here" 
var dataObj = {'sharers':''}; 
    ref(url).set(dataObj).then(function(res) { 
     console.log("response:- ",res); 
    }); 
相關問題