2016-09-26 63 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