gpt4 book ai didi

firebase - Firebase实时数据库检查有两个值?

转载 作者:行者123 更新时间:2023-12-03 04:51:00 24 4
gpt4 key购买 nike

我需要检查记录是否已经存在或不具有两个值,以避免重复记录。我的数据库结构如下:

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实时数据库,因此执行此操作的唯一方法是将两个属性组合为一个。

因此,您将拥有以下内容:

movies
randomid
userId_imbdId : valueId_valueId

然后,您可以检查 userId_imbdId是否等于userId_movieid

关于firebase - Firebase实时数据库检查有两个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61345189/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com