在安卓应用中,网络数据库用于存储和同步云端数据,常见选择包括:
特点:高可用性、全球分布式部署,但成本较高。
方案 | 优势 | 劣势 |
---|---|---|
Firebase Realtime DB | 实时数据同步、简单易用、免费额度高 | 结构化数据限制(JSON 树形结构)、无 SQL 支持 |
Firebase Firestore | 支持更复杂查询、分页、索引;兼容 NoSQL 和 SQL 查询 | 学习成本略高 |
自建 MySQL/MongoDB | 完全自定义、支持复杂 SQL/NoSQL 操作、无厂商锁定 | 需自行维护服务器、API 接口、安全性 |
AWS DynamoDB | 自动扩展、高可用性、按量付费 | 成本高、需熟悉 AWS 生态 |
google-services.json
文件并放入项目根目录。 在 build.gradle
中添加:
// 项目级 build.gradle classpath 'com.google.gms:google-services:4.3.15' // 应用级 build.gradle implementation 'com.google.firebase:firebase-database:20.3.0' apply plugin: 'com.google.gms.google-services'
// 在 Application 类中初始化 FirebaseApp.initializeApp(this);
写入数据:
DatabaseReference ref = FirebaseDatabase.getInstance().getReference("users"); User user = new User("John", 25); ref.child(user.getName()).setValue(user);
读取数据:
ref.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { for (DataSnapshot snapshot : dataSnapshot.getChildren()) { User user = snapshot.getValue(User.class); // 处理用户数据 } } @Override public void onCancelled(DatabaseError error) { // 处理错误 } });
AndroidManifest.xml
中添加: <uses-permission android:name="android.permission.INTERNET" />
// Firebase Realtime Database 规则示例 { "rules": { ".read": true, // 允许所有人读取 ".write": "auth != null" // 仅登录用户可写入 } }
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
ConnectivityManager
监听网络状态变化,动态调整操作。