![translation](https://cdn.durumis.com/common/trans.png)
Đây là bài viết được dịch bởi AI.
Chọn ngôn ngữ
Văn bản được tóm tắt bởi AI durumis
- Chúng ta đã tìm hiểu cách xây dựng hệ thống thông báo đẩy thời gian thực bằng cách sử dụng Deno, Supabase và Firebase Cloud Messaging (FCM).
- Với chức năng cơ sở dữ liệu thời gian thực của Supabase và FCM, bạn có thể xây dựng một hệ thống cung cấp thông tin tức thời cho người dùng và cải thiện tương tác.
- Bài viết này minh họa cách xây dựng hệ thống bằng các ví dụ mã thực tế, bao gồm cấu hình máy khách Deno và Supabase, phát hiện thay đổi cơ sở dữ liệu và gửi thông báo đẩy thông qua FCM.
Xây dựng hệ thống thông báo đẩy thời gian thực bằng Deno, Supabase và Firebase Cloud Messaging
Giới thiệu
- Tầm quan trọng của thông báo đẩy thời gian thực
- Giới thiệu về Deno, Supabase và Firebase Cloud Messaging (FCM)
Thiết lập máy chủ bằng Deno và Supabase
- Giới thiệu về Deno và các tính năng của nó
- Thiết lập máy khách Supabase
- Quản lý cấu hình an toàn thông qua biến môi trường
Phát hiện thay đổi cơ sở dữ liệu thời gian thực
- Giới thiệu về chức năng thời gian thực của Supabase
- Định nghĩa giao diện để phát hiện thay đổi cơ sở dữ liệu
Gửi thông báo đẩy bằng Firebase Cloud Messaging
- Vai trò và tầm quan trọng của FCM
- Nhận mã thông báo truy cập bằng tài khoản dịch vụ Google
- Logic gửi thông báo đẩy từ máy chủ Deno qua FCM
Kết luận
- Ưu điểm của hệ thống sử dụng Deno, Supabase và FCM
- Sự đóng góp của hệ thống thông báo đẩy thời gian thực cho trải nghiệm người dùng
1. Giới thiệu
Trong kỷ nguyên kỹ thuật số ngày nay, thông báo đẩy thời gian thực là yếu tố cốt lõi để tối ưu hóa trải nghiệm người dùng. Bài viết này sẽ khám phá cách xây dựng hệ thống thông báo đẩy thời gian thực bằng cách sử dụng Deno, Supabase và Firebase Cloud Messaging (FCM). Bài viết này dành cho các nhà phát triển quan tâm đến Deno và các dịch vụ đám mây.
2. Thiết lập máy chủ bằng Deno và Supabase
Deno là một thời gian chạy JavaScript và TypeScript hiện đại, được tạo ra để khắc phục các hạn chế của Node.js. Supabase là một dịch vụ backend mã nguồn mở dựa trên PostgreSQL, cung cấp chức năng cơ sở dữ liệu thời gian thực. Kết hợp hai công nghệ này, bạn có thể xây dựng một hệ thống backend mạnh mẽ và linh hoạt.
Ví dụ mã: Thiết lập máy khách Supabase
import { createClient } from 'npm:@supabase/supabase-js@2'
const supabase = createClient(
Deno.env.get('SUPABASE_URL')!,
Deno.env.get('SUPABASE_SERVICE_ROLE_KEY')!
Mã này cho thấy cách khởi tạo máy khách Supabase. Ở đây, chúng ta sử dụng chức năng biến môi trường của Deno để quản lý an toàn thông tin kết nối Supabase.
3. Phát hiện thay đổi cơ sở dữ liệu thời gian thực
Bằng cách sử dụng chức năng Web Hook của Supabase, bạn có thể phát hiện và phản hồi ngay lập tức các thay đổi trong cơ sở dữ liệu. Điều này cho phép bạn cung cấp cho người dùng thông tin cập nhật một cách nhanh chóng.
Ví dụ mã: Định nghĩa tải trọng web hook
interface Post {
id: string
title: string
content: string
}
interface WebhookPayload {
type: 'INSERT'
table: string
record: Post
schema: 'public'
}
// Hàm gửi thông báo đẩy đến tất cả người dùng khi bài viết mới được thêm vào bảng posts
Deno.serve(async (req) => {
// Trích xuất tải trọng web hook từ yêu cầu.
const payload: WebhookPayload = await req.json()
console.log("payload: ", payload);
Các giao diện này được định nghĩa để xử lý các sự kiện thay đổi dữ liệu xảy ra trong Supabase. Giao diện Post định nghĩa cấu trúc dữ liệu bài viết, trong khi WebhookPayload định nghĩa cấu trúc dữ liệu nhận được từ web hook.
4. Gửi thông báo đẩy bằng Firebase Cloud Messaging
FCM là một dịch vụ mạnh mẽ cho phép bạn gửi thông báo đẩy đến nhiều nền tảng khác nhau. Bằng cách gửi thông báo từ máy chủ Deno qua FCM, người dùng có thể nhận được thông báo ngay lập tức về bài viết mới hoặc cập nhật quan trọng.
Ví dụ mã: Gửi thông báo đẩy qua FCM
import serviceAccount from '../serviceAccountKey.json' with { type: 'json' }
// Hàm lấy mã thông báo truy cập từ tài khoản dịch vụ Google
const getAccessToken = ({
clientEmail,
privateKey,
}: {
clientEmail: string
privateKey: string
}): Promise => {
Mã này minh họa quy trình máy chủ Deno sử dụng FCM để gửi thông báo đẩy. Ở đây, chúng ta sử dụng tài khoản dịch vụ Google để lấy mã thông báo truy cập cần thiết cho FCM.
5. Kết luận
Sử dụng Deno, Supabase và FCM để xây dựng hệ thống thông báo đẩy thời gian thực rất hữu ích trong phát triển web hiện đại. Hệ thống này cho phép các nhà phát triển cung cấp thông tin tức thời cho người dùng và cải thiện tương tác. Với các công nghệ và ví dụ mã được giới thiệu trong bài viết này, các nhà phát triển có thể có được kiến thức và công cụ cần thiết để xây dựng hệ thống thông báo thời gian thực của riêng mình.