📅  最后修改于: 2023-12-03 15:08:24.912000             🧑  作者: Mango
Firebase Firestore是谷歌的云端数据库,可以存储和同步数据,适用于移动应用、Web 应用和服务器端。在Android应用中,我们可以使用Firestore来存储数据,并在应用中显示AlertDialog来展示这些数据。
在Android项目的build.gradle文件中添加以下依赖:
implementation 'com.google.firebase:firebase-firestore:23.0.4'
在你的Activity中,创建一个Firestore实例:
FirebaseFirestore db = FirebaseFirestore.getInstance();
获取数据:
db.collection("cities")
.get()
.addOnCompleteListener(task -> {
if (task.isSuccessful()) {
List<String> cities = new ArrayList<>();
for (QueryDocumentSnapshot document : task.getResult()) {
cities.add(document.getData().get("name").toString());
}
//创建AlertDialog
createAlertDialog(cities);
} else {
Log.d(TAG, "Error getting documents: ", task.getException());
}
});
以上代码从Firestore获取一个名为“cities”的集合,并将该集合中所有文档的“name”字段添加到一个字符串列表中。
创建AlertDialog:
private void createAlertDialog(List<String> cities) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("选择城市")
.setItems(cities.toArray(new String[0]), (dialog, which) -> {
//处理点击事件
})
.create()
.show();
}
这段代码创建了一个AlertDialog,并将列表中的项作为选项添加到对话框中。当用户点击其中一项时,可在响应方法中添加相应的处理逻辑。
完整代码:
public class MainActivity extends AppCompatActivity {
private static final String TAG = MainActivity.class.getSimpleName();
FirebaseFirestore db = FirebaseFirestore.getInstance();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
db.collection("cities")
.get()
.addOnCompleteListener(task -> {
if (task.isSuccessful()) {
List<String> cities = new ArrayList<>();
for (QueryDocumentSnapshot document : task.getResult()) {
cities.add(document.getData().get("name").toString());
}
createAlertDialog(cities);
} else {
Log.d(TAG, "Error getting documents: ", task.getException());
}
});
}
private void createAlertDialog(List<String> cities) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("选择城市")
.setItems(cities.toArray(new String[0]), (dialog, which) -> {
//处理点击事件
})
.create()
.show();
}
}
在本文中,我们向您展示了如何使用Firestore数据库从Android应用中获取数据,并将其显示在AlertDialog中。Firestore是一个非常强大的数据库,可以在应用程序中使用多种方式。希望这篇文章对您有所帮助!