gpt4 book ai didi

android - Firebase 检查节点 A 中的子值是否与节点 B 中的子值匹配

转载 作者:行者123 更新时间:2023-11-30 00:33:55 25 4
gpt4 key购买 nike

我的 Firebase 数据库中有以下数据结构,当我在“玩家”节点中添加新玩家时,我试图通过“phoneNum”搜索“用户”节点以查看是否有任何匹配项

我认为我在错误的节点上监听或错误地使用了 addChildEventListener,因为在我添加具有相同编号的播放器时它返回 else 语句 'NOT FOUND '

非常感谢任何帮助

Image of datastructure

下面的代码

    usersDatabase = mFirebaseDatabase.getReference().child("users");
private void checkIfPlayerIsUser(final String phoneNum){
// String ph = phoneNum.substring(phoneNum.length() - 8);
usersDatabase.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
if (dataSnapshot.getValue() == null) {
Toast.makeText(getApplicationContext(), "****NULLL****", Toast.LENGTH_LONG).show();

}
else if(dataSnapshot.getValue().equals(phoneNum)){

// player added is in user database
Toast.makeText(getApplicationContext(), "****PLAYER FOUND****", Toast.LENGTH_LONG).show();

}
else{
Toast.makeText(getApplicationContext(), "****NOT FOUND****", Toast.LENGTH_LONG).show();

}
}

@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {

}

@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {

}

@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {

}

@Override
public void onCancelled(DatabaseError databaseError) {

}
});

}

最佳答案

您可以使用下面的方法。我在运行的应用程序中使用它来检查用户名是否被使用过。希望对您有所帮助。

  void checkIfPlayerIsUser(final String phoneNum) {
DatabaseReference mDatabaseReference =
FirebaseDatabase.getInstance().getReference().child("users");

if (!TextUtils.isEmpty(phoneNum)) {
final Query phoneNumReference = mDatabaseReference.orderByChild("phoneNum").equalTo(phoneNum);

ValueEventListener phoneNumValueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.getValue() != null) {
Toast.makeText(getApplicationContext(), "****PLAYER FOUND****", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getApplicationContext(), "****NOT FOUND****", Toast.LENGTH_LONG).show();
}
}

@Override
public void onCancelled(DatabaseError databaseError) {}
};

phoneNumReference.addListenerForSingleValueEvent(phoneNumValueEventListener);


} else {
Log.e("Error","phoneNum is null");
}
}

关于android - Firebase 检查节点 A 中的子值是否与节点 B 中的子值匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43742366/

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