2017-09-27 148 views
-2

我使用以下代碼添加一個孩子並在FireBase中爲其設置一個值。從firebase刪除孩子

String ref = Constants.Client+"/"+Constants.firebaseProjects+"/"+Constants.ProjectName+"/xyz"; 
final DatabaseReference ref = FirebaseDatabase.getInstance().getReference(FirebaseRefer); 
ref.child("mockChild").push().setValue("") 

如何刪除「mockChild」?

回答

1
ref.child("mockChild").removeValue(); 

代碼添加子 - ref.child("mockChild").push().setValue("Hello");

Added child

代碼刪除子 - ref.child("mockChild").removeValue();

Removed image

讓我們的用戶數據庫的例子:

ref.child("Users").child("User1").setvalue("person 1"); 
ref.child("Users").child("User2").setvalue("person 2"); 
ref.child("Users").child("User3").setvalue("person 3"); 

現在,如果你想從數據庫中刪除特定的用戶,你必須使用此代碼:

ref.child("Users").child("User2").removeValue(); 

由於火力點是一個關鍵值數據庫,它將從用戶2刪除該值,也因爲密鑰鑰匙不能在它自己的。這將從數據庫中刪除對User2的整個引用。

+0

在這種情況下,它不只是刪除值「」,我想刪除整個孩子。 –

+0

它應該刪除該值,並且當該值被刪除時,該鍵將被刪除:) –

+0

您確定當刪除值時,該鍵將被刪除嗎?因爲內部該方法所做的是它將爲該值設置一個空對象。 –

2

爲了解決這個問題,請使用以下代碼:

String key = ref.child("mockChild").push().getKey(); 
ref.child("mockChild").child(key).setValue("yourValue"); 
ref.child("mockChild").child(key).removeValue(); // This is how you remove it 

,或者您可以使用:

ref.child("mockChild").child(key).setValue(null); 

它也接受了,意思是當你給火力地堡空值的屬性/路徑,則表明您希望將屬性或路徑刪除。

如果你想刪除整個兒,然後只需使用:

ref.child("mockChild").removeValue(); 

注意,它會刪除mockChild包含的一切。

+0

我不想改變孩子的價值,我想要自己去除孩子。 –

+1

我不改變這個值。我剛剛向您展示瞭如何使用'setValue()'方法設置一個值,然後如何使用'removeValue()'方法刪除相同的值。它工作嗎?您只需直接在引用中使用'removeValue()'。 –

+0

請參閱我的更新回答。 –