gpt4 book ai didi

android - 如何获取一次 firebase 数据库的值 (Android)

转载 作者:太空狗 更新时间:2023-10-29 16:31:15 25 4
gpt4 key购买 nike

我刚开始使用 firebase,我很惊讶复杂的事情是多么的简单,简单的事情也可以是多么的复杂。

我需要检查我的 Firebase 数据库中是否存在用户,如果存在,我需要获取其键和值。

我有 key ,我尝试通过转到我的用户子树并查找具有相同 key (ID) 的 child 来在数据库中找到它

DatabaseReference root_firebase = FirebaseDatabase.getInstance().getReference();
DatabaseReference users_firebase = root_firebase.child("Users");
DatabaseReference friend_found = users_firebase.child(key_searched_friend);

一旦我有了它,我就会尝试调用一些方法,比如

friend_found.getValue(); 

friend_found.child("user_name").getValue();

但它不存在,

这看起来很奇怪,因为我可以两者兼顾

friend_found.getKey();
friend_found.child("user_name").getKey();

我无法使用覆盖方法 onDataChanged() 执行此操作,因为当我查询此值时数据不会更改。

这是我的 firebase 数据库结构:

{
"RoomNames" : {
"Room-KM5cof0jcoMN8a4g6vC" : {
"room_name" : "TESTrOOM"
},
"Room-KM5dg_WPRdEOT4_oJ1r" : {
"room_name" : "testRoom2"
}
},
"Users" : {
"User-KM5ZaGq0xvjQis05CPF" : {
"user_name" : "Enrique"
}
}
}

最佳答案

你说:我不能用覆盖的方法 onDataChanged() 来做到这一点,因为当我查询这个值时数据不会改变

关于如何 Retrieve Data 的指南解释说:

Firebase data is retrieved by attaching an asynchronous listener to a FirebaseDatabase reference. The listener is triggered once for the initial state of the data and again anytime the data changes.

因此,当您将监听器附加到某个位置时,onDataChanged()触发并为您提供当前值。

在标题为一次读取数据的部分中,指南指出:

In some cases you may want a callback to be called once and then immediately removed, such as when initializing a UI element that you don't expect to change. You can use the addListenerForSingleValueEvent() method to simplify this scenario: it triggers once and then does not trigger again.

关于android - 如何获取一次 firebase 数据库的值 (Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38255513/

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