gpt4 book ai didi

java - Firebase,在推送之前检查数据是否已经存在

转载 作者:行者123 更新时间:2023-11-29 23:25:38 26 4
gpt4 key购买 nike

我在 firebase 中添加数据时遇到问题,我的代码应该检查帐户是否已注册但无法正常工作。这是使用的代码和结构:

        mDatabase = FirebaseDatabase.getInstance().getReference("Users");

mDatabase.addListenerForSingleValueEvent(new ValueEventListener() {@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot data: dataSnapshot.getChildren()){
Log.d("child:",data.getKey());
if (data.child(user.getName()).exists()) {

Log.d("child exists",user.getName());
Toast.makeText(getApplicationContext(),
"child already exists",
Toast.LENGTH_LONG).show();
continue;
} else {
mDatabase.push().setValue(user);
}
}
}

结构 structure firebase

规则:

{
/* Visit https://firebase.google.com/docs/database/security to learn more about security rules. */
"rules": {
".read": true,
".write": true
}
}

它添加一个用户而不是输入 if 部分...

最佳答案

您可以做的是直接使用 orderByChild()equalTo() 来查找具有特定用户名的用户是否存在。

这将在这种数据库结构中完美地工作,这将是一个更好的解决方案。代码看起来像这样:

reference.orderByChild("name").equalTo(user.getName()).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

if(dataSnapshot.exists())
// do what you want
}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {

}
)};

关于java - Firebase,在推送之前检查数据是否已经存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53615683/

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