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) 

感謝。

+0

データが確実に必要なスキーマに準拠するようにするには、データベースのセキュリティルールに '.validate'節を書くことができます。詳細については、https://firebase.google.com/docs/database/security/ –

+0

@FrankvanPuffelenを参照してください。これは有効です。しかし、どのように私は最初の場所では、匿名キーなしでデータベースに書き込むのですか?たとえば、写真のキーMovie1の場合、キーの日付、ユーザー名、およびその値のみが必要です。 KbBDD4QDDiZn3it6r8mなし –

答えて

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()) 
関連する問題