是的,存在跨平台的 Firestore API,允许你在 Web、Flutter 和其他平台上使用 Firestore 数据库。以下是针对 Web 和 Flutter 的 Firestore API 的简要说明:
Web 平台
对于 Web 平台,Google 提供了官方的 Firestore JavaScript SDK,可以直接在浏览器中使用。以下是一个简单的示例:
- 安装 Firestore SDK:
你可以通过 CDN 引入 Firestore SDK,或者使用 npm/yarn 进行安装。
<!-- 通过 CDN 引入 --> <script src="https://www.gstatic.com/firebasejs/9.6.1/firebase-app.js"></script> <script src="https://www.gstatic.com/firebasejs/9.6.1/firebase-firestore.js"></script>
- 初始化 Firestore:
使用你的 Firebase 项目配置信息进行初始化。
const firebaseConfig = { apiKey: "YOUR_API_KEY", authDomain: "YOUR_AUTH_DOMAIN", projectId: "YOUR_PROJECT_ID", storageBucket: "YOUR_STORAGE_BUCKET", messagingSenderId: "YOUR_MESSAGING_SENDER_ID", appId: "YOUR_APP_ID" }; firebase.initializeApp(firebaseConfig); const db = firebase.firestore();
- 读取和写入数据:
使用 Firestore API 进行数据的读取和写入操作。
// 添加文档 db.collection("cities").add({ name: "San Francisco", state: "CA", country: "USA" }) .then((docRef) => { console.log("Document written with ID: ", docRef.id); }) .catch((error) => { console.error("Error adding document: ", error); }); // 查询文档 db.collection("cities").where("state", "==", "CA") .get() .then((querySnapshot) => { querySnapshot.forEach((doc) => { console.log(`${doc.id} => ${doc.data()}`); }); });
Flutter 平台
对于 Flutter 平台,Google 提供了 firebase_firestore
插件,可以方便地在 Flutter 应用中使用 Firestore。
- 添加依赖:
在你的
pubspec.yaml
文件中添加 firebase_firestore
依赖。
dependencies: flutter: sdk: flutter firebase_core: ^1.10.0 firebase_firestore: ^3.1.7
- 初始化 Firestore:
在应用启动时初始化 Firebase 和 Firestore。
import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_firestore/firebase_firestore.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp(); runApp(MyApp()); }
- 读取和写入数据:
使用 Firestore API 进行数据的读取和写入操作。
import 'package:firebase_firestore/firebase_firestore.dart'; final FirebaseFirestore firestore = FirebaseFirestore.instance; // 添加文档 Future<void> addCity() async { await firestore.collection('cities').add({ 'name': 'San Francisco', 'state': 'CA', 'country': 'USA' }); } // 查询文档 StreamBuilder<QuerySnapshot> citiesStreamBuilder() { return StreamBuilder<QuerySnapshot>( stream: firestore.collection('cities').snapshots(), builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) { if (snapshot.hasError) { return Text('Something went wrong'); } if (snapshot.connectionState == ConnectionState.waiting) { return Text("Loading"); } return ListView( children: snapshot.data!.docs.map((DocumentSnapshot document) { Map<String, dynamic> data = document.data() as Map<String, dynamic>; return ListTile( title: Text(data['name']), subtitle: Text(data['state']), ); }).toList(), ); }, ); }
通过这些 API,你可以在 Web 和 Flutter 应用中无缝地使用 Firestore 数据库,实现数据的跨平台管理。