gpt4 book ai didi

android - 如何检索 Firebase 中字段的值?

转载 作者:行者123 更新时间:2023-11-29 19:30:36 25 4
gpt4 key购买 nike

enter image description here

假设我有上面的 Firebase 数据库。我想使用 Firebase 自动生成的 key 获取联系人对象和每个字段。怎么做?

我想象的是这样的:

Query ref = FirebaseDatabase.getInstance().
getReference("contacts").orderByKey().equalTo("-KTwyKpIifsYAZiZd861");

也许可以这样使用它:(顺便说一句,下面不是实际代码,因为 getValue() 不存在。它只是代表我正在尝试做的事情。)

String name = ref.getValue("name");
String city = ref.getValue("city);
// and so on.

那么,如何在 Firebase 中检索各个字段的值?

最佳答案

你可以创建一个Contact类:

@IgnoreExtraProperties
public class Contact {
public String address;
public String city;
public String code_name;
public String name;

public Contact() {

}
}

并使用 ValueEventListener 获取一个值:

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

// ...

mDatabase.child("contacts").child("-KTwyKpIifsYAZiZd861").addListenerForSingleValueEvent(
new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Contact contact = dataSnapshot.getValue(Contact.class);
String name = contact.name; // "John Doe"
String city = contact.city; // "Texas"
}

@Override
public void onCancelled(DatabaseError databaseError) {

}
});

见官方docs .


根据 Frank van Puffelen 的评论,提问者写了更多细节:

如果以后有人读到这篇文章,并且因为为什么从 Firebase 检索数据需要一个事件而感到困惑(像我一样),那是因为当我们从 Internet 加载某些内容时,我们不能总是期望它立即加载。这就是为什么我们需要异步处理它,在这个 Firebase 案例中,使用上面回答的事件。

例如,在附加 ValueEventListener() 以检索数据之前,您可以向用户显示加载动画,当 onDataChange()onCancelled() 被调用。这样,您的用户就会知道数据正在加载以及何时完成。

关于android - 如何检索 Firebase 中字段的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40015323/

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