文章大綱
要推送通知到 react native,除了可以從 firebase 網頁去發送以外,也可以透過安裝firebase-admin套件把發送的方法傳到 api 裡,實現利用打 api 來發送通知。
大綱:
- 新增
firebase專案 & 設定 - 安裝
firebase-admin& 設定 router中引用
新增firebase專案 & 設定
新增專案
首先需要有一個 firebase 帳號並創建專案,創建專案可以參考下面文章的步驟 1:
設定專案
進入專案設定 > 服務帳戶 > 點擊產生新的私密金鑰,並且把下載下來的檔案放到根目錄。

安裝firebase-admin & 設定
安裝firebase-admin
$ yarn add firebase-admin
設定 express 專案
把剛剛在firebase > 專案設定 > 服務帳戶那邊的程式碼片段貼在app.js
const express = require('express');
const cors = require('cors');
const app = require('express')();
const env = require('dotenv').config().parsed;
const http = require('http').Server(app);
const admin = require('firebase-admin');
const serviceAccount = require('./firebase-adminsdk.json');
app.use(cors());
app.use(express.json());
app.use('/', require('./api'));
http.listen(3000, () => console.log('connected 3000'));
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: env.FIREBASE_DATABASE_URL
});
router中引用
const { Router } = require('express');
const admin = require('firebase-admin'); // <-- 加入這行
const router = Router();
router.post('/newOrder', async (req, res) => {
// 要傳送的訊息格式
const message = {
android: {
notification: {
title: 'sdvvvqw',
body: 'tedsvsd test',
channel_id: 'orderChannel'
}
},
token: req.body.token
};
// 發送通知
await admin.messaging().send(message);
res.status(204).json({});
});
module.exports = router;
這時候可以使用postman發送request看看前端有沒有收到訊息。請注意前端也必須監聽channel_id同名的頻道才收得到喔!
如何確定前端有收到通知?
請參考本篇說明:




發表評論
想要加入討論嗎?請盡情發表您的想法!