gpt4 book ai didi

java - 如何根据用户在文本字段中输入的电子邮件从 Firebase 数据库检索值?

转载 作者:行者123 更新时间:2023-12-01 19:59:03 25 4
gpt4 key购买 nike

我正在研究 Firebase 数据库。如何根据用户在文本字段中输入的电子邮件从数据库中检索值。下面是我的数据库结构。请帮忙。

database structure

这是我的代码:

 Ref = database.getReference("Registeration"); 
Ref.orderByChild("UserRegistration/email").equalTo(emailval).addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
user_reg user=dataSnapshot.getValue(user_reg.class);
Toast.makeText(getApplicationContext(), user.toString(), Toast.LENGTH_SHORT).show();
}

最佳答案

你有:

 Registration
UserRegistration
12
pushid
key:values
email:emailvalue

要始终检索值,您必须从上到下,因此不能跳过任何节点。

只有 orderByChild(..) 查询可以跳过一个节点(这意味着如果您想要获取不是直接子节点的子节点,则可以使用此查询)

试试这个:

DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("Registration").child("UserRegistration").child("12");
ref.orderByChild("email").equalTo(emailenteredbyuser).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot datas : dataSnapshot.getChildren()) {
String email=datas.child("email").getValue().toString();

}
}
@Override
public void onCancelled(FirebaseError firebaseError) {

}

});

正如您在上面看到的,引用穿过每个节点,直到节点 12

然后,您使用此 orderByChild("email").equalTo(emailenteredbyuser) 来获取用户输入的电子邮件。

for (DataSnapshot datas : dataSnapshot.getChildren()) 此 for 循环 datas12 的直接子级内部进行迭代,即这样您就不需要检索 Pushid 来获取其中的值。

关于java - 如何根据用户在文本字段中输入的电子邮件从 Firebase 数据库检索值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48606728/

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