1.0.1 • Published 2 years ago

react-native-async-database v1.0.1

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

react-native-async-database

A package built on top of AsyncStorage to easily use localstorage as a database like firebase/firestore.

This package aims to imitate firebase's firestore for local storage using react native's asyncstorage

Note: Database means localstorage

What you can do with current version:

  • Create collections
  • Add Documents to colletions
  • Merge data into existing
  • Get data once from database
  • Get multiple documents from a collection
  • Get specific documents from a collection using a query

Installation

yarn add react-native-async-database
npm install react-native-async-database

Usage

import AsyncDb from 'react-native-async-database'

Function Examples

Create or overwrite a single document:

Syntax

AsyncDb.set(collectionName as String, documentId as String, data as Object).then(doc => {
console.log(doc.id, doc.data);
});

Example

AsyncDb.set('users', '1234567890', {name: 'Hamdu', age: 25, messages:['Hello', 'Hi', 'Later'], details: {surname: 'Salifu', middlename: 'Napari'}})
.then(doc => {
console.log(doc.data);
});

Merge data into existing document:

Syntax

AsyncDb.merge(collectionName as String, documentId as String, data as Object).then(doc => {
console.log(doc.id, doc.data);
});

Example

AsyncDb.merge('users', '1234567890', {name: 'Hamdu', age: 25, messages:['Hello', 'Hi', 'Later'], details: {surname: 'Salifu', middlename: 'Napari'}})
.then(doc => {
console.log(doc.data);
});

Add document without specifying document id:

Syntax

AsyncDb.add(collectionName as String, data as Object).then(doc => {
console.log(doc.id, doc.data);
});

Example

AsyncDb.add('users', {
name: 'hamdu',
age: 25,
messages: ['habiba lengey', 'yes'],
details: {
surname: 'salifu',
middlename: 'napari',
},
}).then(doc => {
console.log( doc);
});

Get data once:

Syntax

AsyncDb.getDoc(collectionName as String, documentId as String).then(doc => {
console.log(doc.id, doc.data);
});

Example

AsyncDb.getDoc('users', '3BP3wCT7cgjqk2CwPeWQB')
.then(doc => {
console.log(doc);
})
.catch(err => {
console.log(err);
});

Get all docs in a collection:

Syntax

AsyncDb.getMultiple(collectionName as String).then(doc => {
console.log(snapshot);
});

Example

AsyncDb.getMultiple('users').then(snapshot => {
console.log(snapshot);
});

Get specific docs using a query:

Syntax

Note: The last three parameters constitute the query and the currently acceptable conditions are:
  • Equals to ('==')
  • Greater than ('>')
  • Less than ('<')
  • Includes ('in'). This condition is used to query arrays as will be seen in examples
AsyncDb.getMultiple(collectionName as String, fieldName as String, condition as String, value).then(doc => {
console.log(doc.id, doc.data);
});

Example 1: Querying a collection for a document whose messages field(an array) includes the value 'yes'.

AsyncDb.getMultiple('user', 'messages', 'in', 'yes').then(doc => {
console.log(doc);
});

Example 2: You can also query objects in a document.

AsyncDb.getMultiple('user', 'details.surname', '==', 'salifu').then(doc => {
console.log(doc);
});

Where 'details' is an object in a document

Example 3

AsyncDb.getMultiple('user', 'age', '>', 30').then(doc => {
console.log(doc);
});

Example 4

AsyncDb.getMultiple('user', 'name', '==', 'Hamdu').then(doc => {
console.log(doc);
});

Example 5

AsyncDb.getMultiple('user', 'distance', '<', 5000).then(doc => {
console.log(doc);
});