Giter Site home page Giter Site logo

firebase-url-shortening's Introduction

Firebase URL Shortening

Create a tiny version of any url

How to use

  • As we have 2 separate environments in this setup, edit /function/config/production.json and development.json based on your project configurations:
    • Go to the main project overview tab https://console.firebase.google.com/u/0/project/<your-firebase-project-id>/overview, click on "Add app" and then chose "Web" (html-head icon), copy the content of the var config after the key FirebaseConf in the selected configuration file.
    • Generate a private key from: https://console.firebase.google.com/u/0/project/<your-firebase-project-id>/settings/serviceaccounts/adminsdk and paste it under the key "FirebaseAdminSDK".
  • Modify .firebaserc in the root of the project, and replace 'qa' and 'production' values to your firebase existing project id's.

Once that's done, just define what environment to use with firebase use <qa or production> cmd, and finally deploy firebase deploy Currently runs from GCP as a function from the following URL: https://s.evilurge.com/

To generate a new tiny url use one of the two methods:
  • GET: https://s.evilurge.com/generate?url=http://www.epiphone.com/Products/Electrics/Archtop/Sheraton-II-PRO.aspx
  • POST: https://s.evilurge.com/generate req body:
{"url": "http://www.epiphone.com/Products/Electrics/Archtop/Sheraton-II-PRO.aspx"}

How to deploy

  • First install all node dependencies: npm i
  • Make sure you have firebase tools installed in your global: npm i -g firebase-tools
  • And deploy via: firebase deploy --only functions

How to extend

As in any other microservice, this one is using express with a nice wrapper around it. Just add another .js in /function/src/handlers with the following format:

exports.theNameOfYourHandler = {
    type: ['post', 'get'], exec: (async (req, res) => // Can also have only one request type by just passing _ex_:type:'get'
            res.status(200).send('Cool beans!')
    )};

firebase-url-shortening's People

Contributors

evilurge avatar

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.