Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

Thiết lập ứng dụng khách Nhắn tin qua đám mây của Firebase trên Flutter

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

Làm theo các bước sau để thiết lập ứng dụng FCM trên Flutter.

Yêu cầu và thiết lập dành riêng cho nền tảng

Một số bước bắt buộc phụ thuộc vào nền tảng bạn đang nhắm mục tiêu.

iOS +

Bật các tính năng của ứng dụng trong Xcode

Trước khi ứng dụng của bạn có thể bắt đầu nhận tin nhắn, bạn phải bật thông báo đẩy và chế độ nền trong dự án Xcode của mình.

  1. Mở không gian làm việc dự án Xcode của bạn ( ios/Runner.xcworkspace ).
  2. Bật thông báo đẩy .
  3. Bật tính năng Tìm nạp nền và các chế độ thực thi nền Thông báo từ xa .

Tải lên khóa xác thực APN của bạn

Trước khi bạn sử dụng FCM, hãy tải chứng chỉ APN của bạn lên Firebase. Nếu bạn chưa có chứng chỉ APN, hãy tạo một chứng chỉ trong Trung tâm thành viên dành cho nhà phát triển của Apple .

  1. Bên trong dự án của bạn trong bảng điều khiển Firebase, chọn biểu tượng bánh răng, chọn Cài đặt dự án , sau đó chọn tab Nhắn tin qua đám mây .
  2. Chọn nút Tải lên chứng chỉ cho chứng chỉ phát triển, chứng chỉ sản xuất của bạn hoặc cả hai. Ít nhất một cái được yêu cầu.
  3. Đối với mỗi chứng chỉ, hãy chọn tệp .p12 và cung cấp mật khẩu, nếu có. Đảm bảo rằng ID gói cho chứng chỉ này khớp với ID gói của ứng dụng của bạn. Chọn Lưu .

Phương pháp swizzling

Để sử dụng plugin FCM Flutter trên các thiết bị của Apple, bạn không được vô hiệu hóa phương pháp swizzling. Cần có sự thay đổi nhanh chóng và nếu không có nó, các tính năng chính của Firebase như xử lý mã thông báo FCM sẽ không hoạt động bình thường.

Android

Các dịch vụ của Google Play

Ứng dụng khách FCM yêu cầu thiết bị chạy Android 4.4 trở lên cũng đã được cài đặt dịch vụ Google Play hoặc trình mô phỏng chạy Android 4.4 với API Google. Lưu ý rằng bạn không bị giới hạn trong việc triển khai các ứng dụng Android của mình thông qua Cửa hàng Google Play.

Các ứng dụng dựa trên SDK dịch vụ Play phải luôn kiểm tra thiết bị để tìm APK dịch vụ Google Play tương thích trước khi truy cập các tính năng dịch vụ của Google Play. Bạn nên thực hiện việc này ở hai nơi: trong phương thức onCreate() của hoạt động chính và trong phương thức onResume() của nó. Kiểm tra onCreate() đảm bảo rằng ứng dụng không thể được sử dụng nếu không kiểm tra thành công. Việc kiểm tra onResume() đảm bảo rằng nếu người dùng quay lại ứng dụng đang chạy thông qua một số phương tiện khác, chẳng hạn như thông qua nút quay lại, thì việc kiểm tra vẫn được thực hiện.

Nếu thiết bị không có phiên bản tương thích của các dịch vụ Google Play, ứng dụng của bạn có thể gọi GoogleApiAvailability.makeGooglePlayServicesAvailable() để cho phép người dùng tải xuống các dịch vụ của Google Play từ Cửa hàng Play.

Web

Định cấu hình thông tin đăng nhập web với FCM

Giao diện Web FCM sử dụng thông tin xác thực Web được gọi là khóa "Nhận dạng máy chủ ứng dụng tự nguyện" hoặc "VAPID", để cho phép gửi yêu cầu đến các dịch vụ đẩy web được hỗ trợ. Để đăng ký ứng dụng của bạn nhận thông báo đẩy, bạn cần liên kết một cặp khóa với dự án Firebase của mình. Bạn có thể tạo cặp khóa mới hoặc nhập cặp khóa hiện có của mình thông qua bảng điều khiển Firebase.

Tạo một cặp khóa mới
  1. Mở tab Nhắn tin qua đám mây của ngăn Cài đặt bảng điều khiển Firebase và cuộn đến phần Cấu hình web .

  2. Trong tab Chứng chỉ đẩy web , nhấp vào Tạo cặp khóa . Bảng điều khiển hiển thị thông báo rằng cặp khóa đã được tạo và hiển thị chuỗi khóa công khai và ngày được thêm vào.

Nhập một cặp khóa hiện có

Nếu bạn có một cặp khóa hiện tại mà bạn đang sử dụng với ứng dụng web của mình, bạn có thể nhập cặp khóa đó vào FCM để có thể truy cập các phiên bản ứng dụng web hiện có của mình thông qua API FCM. Để nhập khóa, bạn phải có quyền truy cập cấp chủ sở hữu vào dự án Firebase. Nhập khóa công khai và khóa riêng tư hiện có của bạn ở dạng mã hóa an toàn URL base64:

  1. Mở tab Nhắn tin qua đám mây của ngăn Cài đặt bảng điều khiển Firebase và cuộn đến phần Cấu hình web .

  2. Trong tab Chứng chỉ đẩy web , hãy tìm và chọn văn bản liên kết, "nhập một cặp khóa hiện có".

  3. Trong hộp thoại Nhập cặp khóa , hãy cung cấp khóa công khai và khóa riêng tư của bạn trong các trường tương ứng và nhấp vào Nhập . Bảng điều khiển hiển thị chuỗi khóa công khai và ngày được thêm vào.

Để biết thêm thông tin về định dạng của khóa và cách tạo khóa, hãy xem Khóa máy chủ ứng dụng .

Cài đặt plugin FCM

  1. Cài đặt và khởi tạo các plugin Firebase cho Flutter nếu bạn chưa làm như vậy.

  2. Từ thư mục gốc của dự án Flutter của bạn, hãy chạy lệnh sau để cài đặt plugin:

    flutter pub add firebase_messaging
    
  3. Sau khi hoàn tất, hãy xây dựng lại ứng dụng Flutter của bạn:

    flutter run
    

Truy cập mã thông báo đăng ký

Để gửi tin nhắn đến một thiết bị cụ thể, bạn cần biết mã thông báo đăng ký của thiết bị đó. Vì bạn sẽ cần nhập mã thông báo vào một trường trong bảng điều khiển Thông báo để hoàn thành hướng dẫn này, hãy đảm bảo sao chép mã thông báo hoặc lưu trữ an toàn sau khi bạn truy xuất.

Để truy xuất mã thông báo đăng ký hiện tại cho một phiên bản ứng dụng, hãy gọi getToken() . Nếu quyền thông báo chưa được cấp, phương pháp này sẽ yêu cầu người dùng cấp quyền thông báo. Nếu không, nó sẽ trả về một mã thông báo hoặc từ chối tương lai do lỗi.

final fcmToken = await FirebaseMessaging.instance.getToken();

Trên nền tảng web, chuyển khóa công khai VAPID của bạn đến getToken() :

final fcmToken = await FirebaseMessaging.instance.getToken(vapidKey: "BKagOny0KF_2pCJQ3m....moL0ewzQ8rZu");

Để được thông báo bất cứ khi nào mã thông báo được cập nhật, hãy đăng ký luồng onTokenRefresh :

FirebaseMessaging.instance.onTokenRefresh
    .listen((fcmToken) {
      // TODO: If necessary send token to application server.

      // Note: This callback is fired at each app startup and whenever a new
      // token is generated.
    })
    .onError((err) {
      // Error getting token.
    });

Ngăn tự động khởi chạy

Khi mã thông báo đăng ký FCM được tạo, thư viện sẽ tải dữ liệu nhận dạng và cấu hình lên Firebase. Nếu bạn muốn ngăn tự động tạo mã thông báo, hãy tắt tự động khởi tạo tại thời điểm xây dựng.

iOS

Trên iOS, hãy thêm giá trị siêu dữ liệu vào Info.plist của bạn:

FirebaseMessagingAutoInitEnabled = NO

Android

Trên Android, tắt thu thập Analytics và tự động khởi chạy FCM (bạn phải tắt cả hai) bằng cách thêm các giá trị siêu dữ liệu này vào AndroidManifest.xml của bạn:

<meta-data
    android:name="firebase_messaging_auto_init_enabled"
    android:value="false" />
<meta-data
    android:name="firebase_analytics_collection_enabled"
    android:value="false" />

Bật lại tính năng tự động khởi động FCM trong thời gian chạy

Để bật tính năng tự động khởi động cho một phiên bản ứng dụng cụ thể, hãy gọi setAutoInitEnabled() :

await FirebaseMessaging.instance.setAutoInitEnabled(true);

Giá trị này vẫn tồn tại qua các lần khởi động lại ứng dụng sau khi được đặt.

Bước tiếp theo

Sau khi ứng dụng khách được thiết lập, bạn đã sẵn sàng để bắt đầu gửi tin nhắn xuôi dòng bằng trình tổng hợp Thông báo . Xem Gửi tin nhắn thử nghiệm tới một ứng dụng chạy nền .

Để thêm hành vi khác, nâng cao hơn vào ứng dụng của bạn, bạn sẽ cần triển khai máy chủ .

Sau đó, trong ứng dụng khách của bạn: