gpt4 book ai didi

java - 如何使用android检查firebase中是否存在值?

转载 作者:行者123 更新时间:2023-11-29 15:36:01 24 4
gpt4 key购买 nike

所以,我最近了解了 firebase 数据库,现在我可以插入数据了。我有这个脚本,用于将数据存储到我的 firebase 。

mDatabase = FirebaseDatabase.getInstance().getReference("Biodata");
String userId = mDatabase.push().getKey();
Biodata bio = new Biodata("MyUser", "MyUser@email.com");
mDatabase.child(userId).setValue(bio);

上面的脚本在oncreate中,所以当我一次又一次地运行这个activty时,数据会插入两次或更多

这是我的火力基地

Biodata
-LAuyJho4kTnJt5WuCtJ
Email: "MyUser@email.com"
Fullname: "MyUser"

我的双数据类

@IgnoreExtraProperties
public class Biodata {

public String Fullname;
public String Email;

public Biodata() {
}

public Biodata(String Fullname, String Email) {
this.Fullname = Fullname;
this.Email = Email;
}

}

那么,我怎样才能防止我的应用程序两次插入相同的数据呢?

最佳答案

请尝试下面的代码可能对你有帮助

public void setData(){
final DatabaseReference dbRef = FirebaseDatabase.getInstance().getReference();
Query queryToGetData = dbRef.child("Biodata")
.orderByChild("Email").equalTo("MyUser@email.com");
queryToGetData.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(!dataSnapshot.exists()){
String userId = dbRef.child("Biodata").push().getKey();
Biodata bio = new Biodata("MyUser", "MyUser@email.com");
dbRef.child("Biodata").child(userId).setValue(bio);
}
}

@Override
public void onCancelled(DatabaseError databaseError) {

}
});
}

关于java - 如何使用android检查firebase中是否存在值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50013937/

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