botfriends-firestore-sdk
v1.1.1
Published
Initialize your firestore connection :)
Downloads
29
Readme
Initialize your database with it
Initialization
- With one project
const serviceAccount = {
"type": "sa",
"project_id": "pi",
"private_key_id": "pki",
"private_key": "pk",
"client_email": "ce",
"client_id": "ci",
...
}
const fsClient = new FirestoreClient({
projectId: serviceAccount.project_id,
privateKey: serviceAccount.private_key,
clientEmail: serviceAccount.client_email
})
- With multiple projects If you initialize your firestore client with more than one project, you need to add a database identifier to the initialization. In the following example these are: db1 and db2. To the functions you just need to a the database identifier as last parameter to ensure you are using the right database.
const fsClient = new FirestoreClient([{
identifier: 'db1',
serviceAccount: --structured like above--
}, {
identifier: 'db2',
serviceAccount: --structured like above--
}])
Examples
getDatabase
This function returns the reference to the database object. You can use this to create user-defined queries.
const database = fsClient.getDatabase()
createDoc
This function will create a firestore document and returns the id of the created document.
const docId = fsClient.createDoc('test', {
i: 'am',
a: 'test'
})
getAllDocs
This function will return all documents for a collection.
const result = await fsClient.getAllDocs('test')
getDoc
This function will return a document for an id.
const result = await fsClient.getDoc('test', docId)
getDocs
This function will return the documents for an array of document ids.
const result = await fsClient.getDocs('test', [docId, 'testDoc'])
upsertDoc
This function will create a newn document with the given id. If a document with this id already exists it will update it.
const result = await fsClient.upsertDoc('test', 'testDoc', {
i: 'am',
another: 'test'
})
updateDoc
This function will update a document and return the timestamp when it finished.
const result = await fsClient.updateDoc('test', 'testDoc', {
i: 'am a nice test'
})
getDocWithFilter
This function will return a document which fits to a given filter. In SQL we would talk about some 'WHERE' clauses.
const filterParams = {
fieldPath: 'i',
opStr: '==',
value: 'am not'
}
const result = await fsClient.getDocWithFilter('test', filterParams)
getDocWithMultipleFilters
This function will return documents which fits to the given filters. In SQL we would talk about some 'WHERE' clauses.
const filters = [ { fieldPath: 'i' , opStr: '==', value: 'am not' } , { fieldPath: 'y' , opStr: '==', value: 'cool' } ]
const result = await fsClient.getDocsWithMultipleFilters('test', filters)
deleteDoc
This function will delete a document. There is no return value.
await fsClient.deleteDoc('test', 'testDoc')