SDK phía máy khách Firebase Data Connect cho phép bạn gọi các truy vấn và đột biến phía máy chủ ngay từ một ứng dụng Firebase. Bạn tạo một SDK phía máy khách tuỳ chỉnh song song khi thiết kế các lược đồ, truy vấn và đột biến mà bạn triển khai cho dịch vụ Data Connect. Sau đó, bạn tích hợp các phương thức từ SDK này vào logic của ứng dụng.
Như chúng tôi đã đề cập ở nơi khác, điều quan trọng cần lưu ý là các truy vấn và đột biến không được mã ứng dụng gửi và thực thi trên máy chủ.Data Connect Thay vào đó, khi được triển khai, các thao tác Data Connect sẽ được lưu trữ trên máy chủ như Cloud Functions. Điều này có nghĩa là bạn cần triển khai các thay đổi tương ứng phía máy khách để tránh làm gián đoạn người dùng hiện tại (ví dụ: trên các phiên bản ứng dụng cũ).
Đó là lý do Data Connect cung cấp cho bạn một môi trường phát triển và công cụ cho phép bạn tạo mẫu các lược đồ, truy vấn và đột biến được triển khai trên máy chủ. Nền tảng này cũng tự động tạo SDK phía máy khách trong khi bạn tạo mẫu.
Khi bạn đã lặp lại các bản cập nhật cho dịch vụ và ứng dụng khách, cả bản cập nhật phía máy chủ và phía máy khách đều đã sẵn sàng triển khai.
Quy trình phát triển ứng dụng là gì?
Nếu đã làm theo hướng dẫn Bắt đầu, bạn sẽ được giới thiệu quy trình phát triển tổng thể cho Data Connect. Trong hướng dẫn này, bạn sẽ tìm thấy thông tin chi tiết hơn về cách tạo SDK Flutter từ giản đồ của mình và cách xử lý các truy vấn và đột biến của ứng dụng khách.
Tóm lại, để sử dụng các SDK Flutter đã tạo trong ứng dụng khách, bạn sẽ làm theo các bước tiên quyết sau:
- Thêm Firebase vào ứng dụng Flutter.
- Cài đặt CLI flutterfire
dart pub global activate flutterfire_cli
. - Chạy
flutterfire configure
.
Sau đó:
- Phát triển giản đồ ứng dụng.
Thiết lập quy trình tạo SDK:
- Với nút Thêm SDK vào ứng dụng trong tiện ích Data Connect VS Code của chúng tôi
- Bằng cách cập nhật
connector.yaml
.
Thiết lập và sử dụng trình mô phỏng Data Connect rồi lặp lại.
Tạo Flutter SDK
Giống như hầu hết các dự án Firebase, hoạt động trên mã ứng dụng Firebase Data Connect diễn ra trong một thư mục dự án cục bộ. Cả tiện ích Data Connect VS Code và Firebase CLI đều là những công cụ cục bộ quan trọng để tạo và quản lý mã ứng dụng.
Các lựa chọn tạo SDK được khoá cho một số mục trong tệp dataconnect.yaml
được tạo khi bạn khởi chạy dự án.
Khởi chạy quá trình tạo SDK
Trongconnector.yaml
, hãy thêm outputDir
, package
và (đối với SDK web) packageJsonDir
.
connectorId: movies
generate:
dartSdk:
outputDir: ../../lib/generated # Feel free to change this to a different path
package: movies
outputDir
chỉ định vị trí mà SDK đã tạo sẽ xuất ra. Đường dẫn này tương ứng với thư mục chứa chính tệp connector.yaml
.
Bạn có thể cung cấp đường dẫn tuyệt đối đến outputDir
(không bắt buộc).
package
chỉ định tên gói.
Cập nhật SDK trong quá trình tạo mẫu
Nếu bạn đang tạo mẫu một cách tương tác bằng tiện ích Data Connect VS Code và trình mô phỏng Data Connect của tiện ích này, thì các tệp nguồn SDK sẽ tự động được tạo và cập nhật trong khi bạn sửa đổi các tệp .gql
xác định lược đồ, truy vấn và đột biến. Đây có thể là một tính năng hữu ích trong quy trình làm việc tải lại (nóng).
.gql
và cũng có thể tự động cập nhật các nguồn SDK.
Ngoài ra, bạn có thể dùng CLI để tạo lại SDK bất cứ khi nào tệp .gql thay đổi:
firebase dataconnect:sdk:generate --watch
Tạo SDK để tích hợp và phát hành chính thức
Trong một số trường hợp, chẳng hạn như chuẩn bị các nguồn dự án để gửi cho các kiểm thử CI, bạn có thể gọi CLI Firebase để cập nhật hàng loạt.
Trong những trường hợp này, hãy sử dụng firebase dataconnect:sdk:generate
.
Thiết lập mã ứng dụng khách
Khởi chạy ứng dụng Data Connect
Trước tiên, hãy khởi chạy ứng dụng của bạn bằng cách làm theo hướng dẫn thiết lập Firebase tiêu chuẩn.
Sau đó, hãy cài đặt trình bổ trợ Data Connect:
flutter pub add firebase_data_connect
Khởi chạy Data Connect Flutter SDK
Khởi chạy phiên bản Data Connect bằng thông tin bạn đã dùng để thiết lập Data Connect (tất cả đều có trong thẻ Data Connect của bảng điều khiển Firebase).
Nhập thư viện
Bạn cần có hai nhóm dữ liệu nhập để khởi chạy mã ứng dụng, dữ liệu nhập Data Connect chung và dữ liệu nhập SDK cụ thể, được tạo.
// general imports
import 'package:firebase_data_connect/firebase_data_connect.dart';
// generated queries and mutations from SDK
import 'generated/movies.dart';
Sử dụng truy vấn ở phía máy khách
Mã được tạo sẽ đi kèm với các Query Ref được xác định trước. Bạn chỉ cần nhập và gọi execute
trên các đối tượng đó.
import 'generated/movies.dart';
await MoviesConnector.instance.listMovies().execute();
Gọi phương thức truy vấn SDK
Sau đây là một ví dụ về cách sử dụng các hàm lối tắt cho thao tác này:
import 'generated/movies.dart';
function onBtnClick() {
// This will call the generated Dart from the CLI and then make an HTTP request to the server.
MoviesConnector.instance.listMovies().execute().then(data => showInUI(data)); // == MoviesConnector.instance.listMovies().ref().execute();
}
Trường không bắt buộc
Một số truy vấn có thể có các trường không bắt buộc. Trong những trường hợp này, Flutter SDK sẽ hiển thị một phương thức trình tạo và bạn sẽ phải đặt riêng phương thức này.
Ví dụ: trường rating
là không bắt buộc khi gọi createMovie
, vì vậy, bạn cần cung cấp trường này trong hàm tạo.
await MoviesConnector.instance.createMovie({ title: 'Empire Strikes Back', releaseYear: 1980, genre: "Sci-Fi"}).rating(5).execute();
Đăng ký nhận thông báo khi có thay đổi
Bạn có thể đăng ký nhận thông báo về các thay đổi (thông báo sẽ được cập nhật bất cứ khi nào bạn thực hiện một truy vấn).
QueryRef<ListMoviesData, void> listRef = MoviesConnector.instance.listMovies().ref();
// subscribe will immediately invoke the query if no execute was called on it previously.
listRef.subscribe().listen((data) {
updateUIWithMovies(data.movies);
});
await MoviesConnector.instance.createMovie({ title: 'Empire Strikes Back', releaseYear: 1980, genre: "Sci-Fi" }).rating(5).execute();
await listRef.execute(); // will update the subscription above`
Sử dụng các đột biến ở phía máy khách
Bạn có thể truy cập vào các đột biến theo cách tương tự như truy vấn.
await MoviesConnector.instance.createMovie({ title: 'Empire Strikes Back', releaseYear: 1980, genre: "Sci-Fi" }).rating(5).execute();
Tạo mẫu và kiểm thử các ứng dụng Flutter
Thiết lập các ứng dụng để sử dụng trình mô phỏng cục bộ
Bạn có thể sử dụng trình mô phỏng Data Connect, cho dù là từ tiện ích Data Connect VS Code hay từ CLI.
Việc đo lường ứng dụng để kết nối với trình mô phỏng là như nhau đối với cả hai trường hợp.
import 'package:firebase_data_connect/firebase_data_connect.dart';
import 'generated/movies.dart';
MoviesConnector.instance.dataConnect
.useDataConnectEmulator('127.0.0.1', 9399);
// Make calls from your app
QueryRef<ListMoviesData, void> ref = MoviesConnector.instance.listMovies.ref();
Để chuyển sang tài nguyên phát hành công khai, hãy nhận xét các dòng để kết nối với trình mô phỏng.
Các loại dữ liệu trong Dart SDK
Máy chủ Data Connect đại diện cho các kiểu dữ liệu GraphQL phổ biến. Các loại này được biểu thị trong SDK như sau.
Loại Data Connect | Dart |
---|---|
Dấu thời gian | firebase_data_connect.Timestamp |
Int (32 bit) | int |
Ngày | DateTime |
mã nhận dạng duy nhất (UUID) | chuỗi |
Int64 | int |
Nổi | double |
Boolean | bool |
Bất kỳ | firebase_data_connect.AnyValue |