Coder Social home page Coder Social logo

firebase-trigger's Introduction

Firebase Trigger Github Action

This action allows you to set values into your firebase database (realtime or firestore) from and based on your current build.

I call it trigger because of what this allows you to do. Firebase has extensive tools allowing you to setup functionally that happens when you do things in your database. Weather it is a Cloud Function, Pub Sub, or just a notification on a website used by your users.

Inputs

  • credentials - Required This action uses firebase admin, so you need to provide a service account json object for proper authentication.
  • databaseUrl - Required Database Url you are trying to connect to. It is usually something like: https://[project_id].firebaseio.com
  • databaseType - Optional The database you want to connect to. Defaults to realtime, Accepts realtime and firestore.
  • path - Required Path to the field you want to modify. If you are using firestore, this is the collection path.
  • doc - Required for Firestore Document you want to modify. Uses set, so it will write/overwrite the whole file.
  • value - Optional Value you would like to set. Defaults to Date.now() timestamp. If you are using Firestore this MUST be a JSON Object.

Usage

Writes to a realtime database, and sets the lastRelease to a Date.now() timestamp.

notify:
  runs-on: ubuntu-latest
  name: Notify
  needs: [build, deploy]
  steps:
    - name: Update latest version in realtime database
      uses: w9jds/firebase-trigger@master
      with:
        credentials: ${{ secrets.FIREBASE_CREDENTIALS }}
        databaseUrl: https://[project_id].firebaseio.com
        path: version/lastRelease

Recommendation

You should store the Service Account JSON into a secret on your repo. Also, this can be very powerful if you start passing outputs from other jobs into this one to write values.

firebase-trigger's People

Contributors

w9jds avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

firebase-trigger's Issues

Error while initialized firebase

I wan't to get data from realtime db, but i've got an error when I try to initialize my script:

jobs:
  PullBuildInfo:
    name: Pull build info
    runs-on: ubuntu-latest
    steps:
      - name: Pull latest version build info in realtime database
        uses: w9jds/firebase-trigger@master
        with:
          credentials: ${{ secrets.SOME_FIREBASE_TOKEN }}
          databaseUrl: https://[project_id].firebaseio.com
          path: some/path

My token is valid, because I'm using it from postman request

My error:

image

Error ERR_OSSL_PEM_NO_START_LINE received while trying to run the build

Current Configuration

.....
- name: Firebase set status
      uses: w9jds/firebase-trigger@master
      with:
        credentials: ${{ secrets.FIREBASE_CREDENTIALS }}
        databaseUrl: ******
        databaseType: firestore
        path: staging
        doc: core
        value: "{\"status\": false}"

FIREBASE_CREDENTIALS

{
  "type": "service_account",
  "project_id": "cognifyx-ci-cd",
  "private_key_id":"",
  "private_key": "-----BEGIN-----END PRIVATE KEY-----\n",
  "client_email": "[email protected]",
  "client_id": "114249544638340351149",
  "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": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-tivxz%40cognifyx-ci-cd.iam.gserviceaccount.com"
}


When the build is triggered, I am presented with an error

ERR_OSSL_PEM_NO_START_LINE","details":"Getting metadata from plugin failed with error: error:0909006C:PEM routines:get_name:no start line","metadata":{"internalRepr":{},"options":{}}


firebase project outside the us

Tried a realtime url outside the us

https://[project_id].firebaseio.com is now something like https://[project_id].europe-west1.firebasedatabase.app

which produces an error: UnhandledPromiseRejectionWarning: Error: FIREBASE FATAL ERROR: Cannot parse Firebase url. Please use https://.firebaseio.com

Is there some piece of code hardcoded to ".firebaseio.com"?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.