如何使用python从Firebase实时数据库中删除

时间:2019-11-24 08:58:57

标签: python firebase firebase-realtime-database

我正在Python中使用Firebase实时数据库,并且具有如下结构数据:

{
  "users" : {
    "-LuOXedSsg_1vZ9WBePA" : {
      "name" : "Adam Canrayneldy",
      "password" : "adam",
      "username" : "adam"
    },
    "-LuOXk-fE99ucZbrlBk_" : {
      "name" : "Mei Mei",
      "password" : "mei",
      "username" : "mei"
    }
  }
}

我要使用以下代码删除 child(“-LuOXk-fE99ucZbrlBk _”)

# input
username_to_delete = input ("username:")

data = ref.get()

for key,val in data.items():
    if (username_to_delete == val['username']):
        delete_user_ref = ref.child(key)
        delete_user_ref.set(None)
    else:
        print(usernameDoesNotExist)

我想通过将子级设置为 NULL (在Python中为 None )来删除该子级,但是在启动时输入正确的用户名 ,我收到这样的错误:

in set
     raise ValueError ('Value must not be None.')
ValueError: Value must not be None.

我该怎么办?我仍然是Firebase和python的新手。

1 个答案:

答案 0 :(得分:2)

您可以使用delete()方法:

delete_user_ref.delete()

作为参考,请检查以下文档:

https://firebase.google.com/docs/reference/admin/python/firebase_admin.db

  

设置(值)   将此位置的数据设置为给定值。

     

该值必须可以JSON序列化,并且不能为None。

     

参数:
  值–可以在此位置设置的JSON可序列化的值。

     

提高:
  ValueError –如果提供的值为None。   TypeError –如果该值不是JSON可序列化的。   FirebaseError –如果与远程数据库服务器通信时发生错误。