2016-09-26 62 views
0

我試圖刪除某些存儲在Firebase特定參考中的值。下面是我已經存儲了它:價值沒有從Firebase中刪除

mDatabase.child("users").child(uid).child("followersUID").child(itemIDFU).setValue(MainActivity.uid); 

以下是我正在試圖將其刪除:

itemIDFU = mDatabase.child("users").child(uid).push().getKey(); 

問題:

mDatabase.child("users").child(uid).child("followersUID").child(itemIDFU).child(MainActivity.uid).removeValue(); 

itemIDFU已經onCreate()使用此代碼生成它是成功存儲的,但沒有被刪除。這裏有什麼問題?請告訴我。

+0

請粘貼您收到的Firebase json。 –

+0

@AndresVasquezAgramont請更清楚地告訴我我應該做什麼?謝謝。 –

+0

@HammadNasir如果可以,請轉到數據庫控制檯,在其中顯示數據。在右上角,你會看到三個點。點擊它並選擇「導出JSON」。然後截取我們正在使用的數據區域。這樣我們就可以看到JSON格式是否是問題(在使用Firebase時這是一個常見問題)。 – Ryan

回答

1

它看起來就像當你設置的值,你設置鍵itemIDFU等於任何值是MainActivity.uid

但是,當你刪除數據,你試圖讓孩子itemIDFU ,這是不存在的。

您還沒有添加MainActivity.uid孩子的itemIDFU,您添加它作爲

你有兩種可能的解決方案:

,如果你想刪除值試試這個,但離開itemIDFU關鍵還有空:如果你想徹底刪除

mDatabase.child("users").child(uid).child("followersUID").child(itemIDFU).setValue(null); 

試試這個關鍵和價值:

mDatabase.child("users").child(uid).child("followersUID").child(itemIDFU).removeValue(); 

這是一張圖片來幫助說明數據和問題:

enter image description here

一個更多的圖片來解釋

enter image description here

+1

你是對的...這就是發生了什麼... –

+0

@HammadNasir好,我很高興它工作! Firebase是一個非常有用的API。我個人最喜歡的! – Ryan

+1

@HammadNasir只會添加到問題的解釋。兄弟,當你給孩子設定一個價值。 **它不能被稱爲小孩**。記住firebase將數據保存爲鍵值對。因此,每個孩子都成爲**鍵**,並且該值成爲該鍵**的**值。只要記住這一點,你會稍後避免這種錯誤。 –

1

您可以通過以下兩種方法刪除值:

//第一種方式刪除值

mDatabase.child("users").child(uid).child("followersUID").child(itemIDFU).setValue(null); 

//或試試這個

mDatabase.child("users").child(uid).child("followersUID").child(itemIDFU).removeValue(); 

我覺得值是沒有得到去除你對孩子的增值.removeValue(),而不是孩子本身。

+0

他真的沒有在任何值上調用removeValue(),因爲他試圖調用它的值是不存在的子元素。孩子「MainActivity.uid」不存在,因此沒有價值。但無論如何,你的解決方案(與我的解決方案相同)解決了這個問題。 – Ryan

+0

這不起作用,所以@Ryan的答案。 –

+0

@HammadNasir你是說這兩個答案都不起作用嗎? – Ryan