【发布时间】:2020-04-21 13:49:46
【问题描述】:
我需要用两个值检查一条记录是否已经存在,以避免重复记录。我的数据库结构如下:
movielist
movies
-M5RwyBsC1cwTzX4LU-A
backdropPath: "https://image.tmdb.org/t/p/original/5BwqwxMEjeF..."
genres: "Science Fiction, Drama"
imDBid: "tt2935510"
posterPath: "https://image.tmdb.org/t/p/original/xBHvZcjRiWy..."
releaseDate: "2019"
title: "Ad Astra"
userId: "SZ7zU6toVcSSablbnZif8n4MTIb2"
voteAverage: "6.6"
watched: false
所以我需要在添加之前检查具有 userId 的用户和具有 imDBid 的电影是否存在。如果有更有效的方法可以做到这一点,您也可以建议任何类型的 db 结构。
更新代码(已编辑):
final dbRef = FirebaseDatabase.instance.reference().child("movies");
...
FutureBuilder(
future: getData(_name),
builder: (context, snapshot) {
.....
floatingActionButton: FutureBuilder(
future: dbRef.orderByChild("imDBid").equalTo(snapshot.data.imdbId).once(),
builder: (context, snapshots) {
return FloatingActionButton(
backgroundColor: Colors.red.withOpacity(0.4),
onPressed: (){
Movies movies = new Movies(snapshot.data.imdbId, snapshot.data.originalTitle, snapshot.data.posterPath, snapshot.data.backdropPath, snapshot.data.releaseDate, snapshot.data.title, snapshot.data.voteAverage, snapshot.data.genres, false, userId);
_database.reference().child("movies").push().set(movies.toJson());},
child: Icon(snapshots.data.value != null ? Icons.favorite : Icons.favorite_border )
)
}
),
【问题讨论】:
标签: firebase flutter dart firebase-realtime-database