Fire store в python, заполняющий поля случайными данными - PullRequest
1 голос
/ 21 апреля 2019


У меня вопрос о python и firestore, я подключил python к хранилищу огня и могу добавить данные, однако, когда пытаюсь заполнить поле в своей базе данных, используя Varible all Iпопасть в консоль Firebase это случайная строка.


Мой код
import urllib
import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore
link = "example.com/test1"
f = urllib.urlopen(link)
uw = f.read()
linky = "Example.com/test.txt"
fa = urllib.urlopen(linky)
uname = fa.read()
print(uname)
unname=uname
# Use a service account
uname="hello"
cred = credentials.Certificate('key.json')
firebase_admin.initialize_app(cred)
#uw="hello"
db = firestore.client()
doc_ref = db.collection(u'treasure').document(uw)
doc_ref.set({
    u'found_by': uname
    #u'last': u'Lovelace',
    #u'born': 1815
})
#print(uuname)
print(uname)


Вот моя консоль Firebase
Извините, у меня нет необходимой репутациивстроить изображение, но вот ссылка


примечание
Я пытаюсь загрузить данные для помещения в базу данных с сервера, однако я убедился, что это не проблема.первый из этих URL-запросов запрашивает имя документа, однако это работает хорошо, но второй - когда я получаю данные поля , но , проблема заключается в , а не при его загрузкесервер
Спасибо!

1 Ответ

1 голос
/ 22 апреля 2019

Данные кодируются base64 .

>>> s = 'aGVsbG8='
>>> base64.b64decode(s)
b'hello'

Я не использую Firebase / Firestore, но если данные автоматически записываются в base64 при записи, то, скорее всего, онибудет автоматически декодироваться при чтении.

Если вам нужно вручную декодировать его, обратите внимание, что base64.b64decode возвращает bytes, поэтому вам нужно вызвать .decode () для байтов, чтобы получить str.

Этокомментарий github предполагает, что добавление префикса u к строковым литералам заставит Firestore кодироваться как UTF-8 вместо base64.

Так в вашем примере:

uname = u'Hello'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...