2017-01-23 7 views
1

나는 플랫폼 Raspberry PI 3, Openelec OS에서 채팅 프로젝트를 진행하고 있습니다.Firebase에서 익명 키를 방지하는 방법은 무엇입니까?

DB에 쓰기를 시도하고 원치 않는 익명 키를 가져 오려고합니다.

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) 

감사합니다.

: 당신이 PATCH 요청을 사용할 필요가 자신의 키를 사용하려면
+0

데이터가 원하는 스키마를 따르도록하려면 데이터베이스의 보안 규칙에'.validate' 절을 쓸 수 있습니다. 자세한 내용은 다음을 참조하십시오. https://firebase.google.com/docs/database/security/ –

+0

@FrankvanPuffelen 확인 중입니다. 하지만 처음에는 익명 키를 사용하지 않고 데이터베이스에 어떻게 쓸 수 있습니까? 예를 들어, 그림의 키 Movie1에 대해서만 키 날짜, 사용자 이름 및 해당 값이 필요합니다. KbBDD4QDDiZn3it6r8m이 없으면 –

답변

0

당신이 중포 기지에 POST 요청을 보낼

, 그것은 자동으로 키 (익명 키)를 생성하고,이 파이썬 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())