0.0.43 • Published 4 years ago

apollo-datasource-firebase v0.0.43

Weekly downloads
4
License
ISC
Repository
github
Last release
4 years ago

npm

apollo-datasource-firebase

Connect your GraphQL server to Google Firebase using DataSources.

Firebase Data Source

Install

yarn add apollo-datasource-firebase

or

npm i apollo-datasource-firebase --save

Usage

Define a data source by extending the FirebaseDataSource class. You can then implement the queries and mutations that your resolvers require.

Create a configuration object or json file with the following format to initialise the Firebase and Firebase Admin APIs.

firebaseConfig.json

{
  "firebaseOptions": {
    "apiKey": "<application-api-key>",
    "authDomain": "<project-id>.firebaseapp.com",
    "databaseURL": "https://<project-id>.firebaseio.com",
    "projectId": "<project-id>",
    "storageBucket": "<project-id>.appspot.com",
    "messagingSenderId": "<messaging-sender-id>",
    "appId": "<app-id>",
    "measurementId": "<measurement-id>"
  },
  "serviceAccount": {
    "type": "service_account",
    "project_id": "<project-id>",
    "private_key_id": "<private-key-id>",
    "private_key": "<private-key>",
    "client_email": "<service-account-email>",
    "client_id": "<client-id>",
    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
    "token_uri": "https://oauth2.googleapis.com/token",
    "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
    "client_x509_cert_url": "client-x509-cert-url"
  },
  "databaseURL": "https://<project-id>.firebaseio.com" 
}

users.js

const FirebaseDataSource = require('apollo-datasource-firebase');
const firebaseConfig = require('./firebaseConfig.json');

class UsersAPI extends FirebaseDataSource {
  
  constructor() {
    super(firebaseConfig);
  }

  async retrievePageOfUsers(pageSize, pageToken) {
    var usersListResult = await this.getPageOfUsers({ pageSize, pageToken });
    return usersListResult;
  }

  async signUp( email, password ) {
    var user = await this.userSignUp({email, password});
    return user;
  }

  async signIn( email, password ) {
    return await this.userSignIn({email, password});
  }

}

module.exports = UsersAPI;
0.0.43

4 years ago

0.0.42

4 years ago

0.0.41

4 years ago

0.0.40

4 years ago

0.0.39

4 years ago

0.0.38

4 years ago

0.0.37

4 years ago

0.0.36

4 years ago

0.0.35

4 years ago

0.0.34

4 years ago

0.0.32

4 years ago

0.0.33

4 years ago

0.0.31

4 years ago

0.0.30

4 years ago

0.0.29

4 years ago

0.0.28

4 years ago

0.0.27

4 years ago

0.0.26

4 years ago

0.0.25

4 years ago

0.0.24

4 years ago

0.0.23

4 years ago

0.0.22

4 years ago

0.0.21

4 years ago

0.0.20

4 years ago

0.0.17

4 years ago

0.0.18

4 years ago

0.0.19

4 years ago

0.0.16

4 years ago

0.0.15

4 years ago

0.0.13

4 years ago

0.0.14

4 years ago

0.0.12

4 years ago

0.0.11

4 years ago

0.0.10

4 years ago

0.0.9

4 years ago

0.0.8

4 years ago

0.0.7

4 years ago

0.0.6

4 years ago

0.0.5

4 years ago

0.0.4

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago