如何防止Firebase上的匿名密钥?

时间:2017-01-23 16:59:19

标签: python firebase raspberry-pi firebase-realtime-database openelec

我正在Raspberry PI 3,Openelec OS平台上开展聊天项目。

尝试写入数据库并获取不需要的匿名密钥。

Firebase real-time DB

标有黄色的不需要的钥匙。 Movie2它的键和值是想要的结果,但我是手工制作的。

我只问我如何防止这个匿名随机密钥出现在那里,如何用其他密钥替换它? (字符串,例如电影名称)

这是我的代码:

url = 'https://chat-example-97c62.firebaseio.com/Movie1.json'
postdata = {
    'date': str(time.asctime( time.localtime(time.time()) )),
    'temp': str("Hello from Kodi")
 }
req = urllib2.Request(url)
req.add_header('Content-Type','application/json')
data = json.dumps(postdata)

感谢。

1 个答案:

答案 0 :(得分:0)

当您向Firebase发送POST请求时,它会自动生成密钥(匿名密钥),如果您想使用自己的密钥,则需要使用PATCH请求,这是Python 3上的一个示例:

def update_entry(user, message):

    my_data = dict()
    my_data["user"] = user
    my_data["message"] = message

    json_data = json.dumps(my_data).encode()
    request = urllib.requests.Request("https://<YOUR-PROJECT-ID>.firebaseio.com/movies/<REPLACE_THIS_WITH_YOUR_DESIRED_KEY>.json", data=json_data, method="PATCH")

    try:
        loader = urllib.request.urlopen(request)
    except urllib.error.URLError as e:
        message = json.loads(e.read())
        print(message["error"])
    else:
        print(loader.read())