Как узнать, какие коллекции у меня в Firestore, используя Python API - PullRequest
1 голос
/ 03 октября 2019

Я использую Python для подключения к базе данных Firestore от клиента.

Проблема в том, что я не знаю, как посмотреть, какие коллекции у него есть в базе данных:

from google.cloud import firestore
import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore


cred = credentials.Certificate('credentials/credentials.json')
app = firebase_admin.initialize_app(cred)

db = firestore.client()

users_ref = db.collection(u'name_of_colection')
docs = users_ref.stream()

for doc in docs:
    print(u'{} => {}'.format(doc.id, doc.to_dict()))

Я искал, как получить названия коллекций, которые у него есть, но я не нашел ничего, что было бы полезно для меня. Я также попробовал это:

cols = db.collections()
list_col = []
for col in cols:
    list_col.append(col)

len(list_col)

Я получил len = 6

Затем я сделал это для другого col в сгенерированном мной списке:

docs = list_col[5].stream()

data = []

for doc in docs:
    data.append(doc.to_dict())
print(data) 

Эти данные выводят словарь с ключами и значениями, но я не знаю, получаю только список с названием коллекций,

Ответы [ 2 ]

1 голос
/ 03 октября 2019

Я думаю, что вы должны получить id из каждой коллекции (то есть collection name, о котором вы говорите

list_col = []
for col in collections:
    list_col.append(col.id) // <-- add this please
print(list_col)

Я надеюсь, что это поможет вам

0 голосов
/ 03 октября 2019

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

query = client.collection_group('mygroup')
or 
query = client.collections()

. Это дает верхнюю иерархию, и вам нужно запускаться несколько раз, чтобы найти самый низкий уровень документа.

query = client.collection_group('mygroup')
@param {string} collectionId Identifies the collections to query over. Every collection or subcollection with this ID as the last segment of its path will be included. Cannot contain a slash. @returns {Query} The created Query.

collections()[source]
List top-level collections of the client’s database.

Returns
iterator of subcollections of the current document.

Return type
Sequence[CollectionReference]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...