像这样初始化Firebase之后:
import * as admin from "firebase-admin"
const firebaseApp = admin.initializeApp({
credential: admin.credential.cert(keys),
})
export const db = firebaseApp.firestore()
我想要得到一个集合("播放器"(的所有文档。我使用这个:
const ref = db.collection('players');
const allPlayers = await ref.get();
结果我得到了这个对象:
QuerySnapshot {
[1] _query: CollectionReference {
[1] _firestore: Firestore {
[1] _settings: [Object],
[1] _settingsFrozen: true,
[1] _serializer: [Serializer],
[1] _projectId: 'grampsio-ds-verify',
[1] registeredListenersCount: 0,
[1] bulkWritersCount: 0,
[1] _backoffSettings: [Object],
[1] _clientPool: [ClientPool]
[1] },
[1] _queryOptions: QueryOptions {
[1] parentPath: [ResourcePath],
[1] collectionId: 'players',
[1] converter: [Object],
[1] allDescendants: false,
[1] fieldFilters: [],
[1] fieldOrders: [],
[1] startAt: undefined,
[1] endAt: undefined,
[1] limit: undefined,
[1] limitType: undefined,
[1] offset: undefined,
[1] projection: undefined,
[1] kindless: false,
[1] requireConsistency: true
[1] },
[1] _serializer: Serializer {
[1] createReference: [Function (anonymous)],
[1] createInteger: [Function (anonymous)],
[1] allowUndefined: false
[1] },
[1] _allowUndefined: false
[1] },
[1] _readTime: Timestamp { _seconds: 1660695591, _nanoseconds: 108996000 },
[1] _size: 1,
[1] _materializedDocs: null,
[1] _materializedChanges: null,
[1] _docs: [Function (anonymous)],
[1] _changes: [Function (anonymous)]
[1] }
我如何从中获得两个预期的文档,或者查询已经失败?
我的猜测是您执行了console.log(allPlayers)
,它显示了QuerySnapshot
对象的内部。
要在其中获取文档,请检查其docs
属性。例如:
allPlayers.docs.forEach((docSnapshot) => {
console.log(docSnapshot.id, docSnapshot.data());
})
请注意,这与Firebase文档中关于从集合中获取所有文档的示例非常接近,因此我建议在开发时保持这一点。