https://github.com/chat21/chat21-cloud-functions
Firebase cloud functions for Chat21. It's the server engine of Chat21 hosted on Google Firebase
https://github.com/chat21/chat21-cloud-functions
chat chat-application firebase firebase-functions livechat messaging sdk
Last synced: 9 months ago
JSON representation
Firebase cloud functions for Chat21. It's the server engine of Chat21 hosted on Google Firebase
- Host: GitHub
- URL: https://github.com/chat21/chat21-cloud-functions
- Owner: chat21
- License: agpl-3.0
- Created: 2017-10-13T07:32:01.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2023-01-09T17:06:54.000Z (almost 3 years ago)
- Last Synced: 2025-02-20T20:37:15.263Z (10 months ago)
- Topics: chat, chat-application, firebase, firebase-functions, livechat, messaging, sdk
- Language: JavaScript
- Homepage: http://www.chat21.org
- Size: 27 MB
- Stars: 80
- Watchers: 12
- Forks: 65
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Chat21 - Firebase Cloud Functions
[](https://badge.fury.io/js/%40chat21%2Fchat21-cloud-functions-public)
Chat21 is the core of the open source live chat platform [Tiledesk.com](http://www.tiledesk.com).
- [Chat21 - Firebase Cloud Functions](#chat21---firebase-cloud-functions)
- [Introduction](#introduction)
- [Pre requisites](#pre-requisites)
- [Project building](#project-building)
- [Project setup](#project-setup)
- [Deploy](#deploy)
- [Tips](#tips)
- [Run with Docker](#run-with-docker)
- [Test](#test)
- [Send your first message](#send-your-first-message)
- [Advanced Setup Options](#advanced-setup-options)
- [REST API](#rest-api)
## Introduction
Chat21-cloud function is the backend module required for the operation of the other chat21 modules.
- Send a direct message
- Send a group message
- Create a conversation for each message
- Send the push notification for direct and group message
- Send an info message to notify the creation of a group or a member joining
## Pre requisites
- NPM installed. More info here
- Create a Firebase Project on . Follow the Firebase Documentation to create a new project on the Firebase console.
- Install Firebase CLI running `npm install -g firebase-tools`.
More info here
If the command fails, you may need to change npm permissions as described here or try to install Firebase CLI locally with `npm install firebase-tools`
You can find more info about Firebase Functions here
## Project building
```bash
git clone git@github.com:chat21/chat21-cloud-functions.git
cd functions
npm install
```
## Project setup
1. Login on the Firebase CLI with `firebase login` - it requires access to a web browser.
- To log into the CLI in remote environments that don't allow access to localhost, use the --no-localhost flag. `firebase login --no-localhost`
More info here
2. Set up your Firebase project by running `firebase use --add`, select your Project ID
## Deploy
Deploy to Firebase using the following commands:
1. Go in the project root directory with
```bash
cd ..
```
2. Deploy
```bash
firebase deploy
```
You can now see the deployed functions on the Firebase Console under Functions menu.
## Tips
- If you get Error 403 "Your client does not have permission to the requested URL" please enable unauthenticated function for /api e /supportapi cloud functions following this guide:
## Run with Docker
If you prefer you can use a pre-built docker image to deploy the cloud functions to the Firebase project:
Run:
```bash
docker run -it chat21/chat21-cloud-functions sh
```
After that follow the "Project setup" and "Deploy paragraphs.
## Test
### Send your first message
- Create a new user on the Firebase Console under Authentication Menu.
- Select Email/Password for Authentication Provider
- Click on "Add New User" and populate Email and Password field with for example : email = a@a.com, password = 123456
- Get a JWT token calling JWT Authentication method as described here [JWT Authentication](docs/api.md#jwt-authentication)
- Send a new message using Send Message API with JWT Authentication as described here [Send message](docs/api.md#send-a-message)
## Advanced Setup Options
[Read the Setup Options page](docs/setup_options.md)
## REST API
[Read the REST API page](docs/api.md)