Firebase Rest Api 从我的模型类中读取数据返回 null [重复]
Posted
技术标签:
【中文标题】Firebase Rest Api 从我的模型类中读取数据返回 null [重复]【英文标题】:Firebase Rest Api reading data from my model classes return null [duplicate] 【发布时间】:2021-12-24 23:26:36 【问题描述】:我正在尝试在 java Restful API 中运行 Get 方法。我尝试将我的模型类命名为类似于我的实时 Firebase,但这不是问题。
This is my real-time firebase. reference is Devices/Lamp/Ambient
这是我的模型类
private String LightSwitch;
private String DoorSwitch;
// empty COnstructor
public DeviceTest()
public DeviceTest(String lightSwitch, String doorSwitch)
LightSwitch = lightSwitch;
DoorSwitch = doorSwitch;
public String getLightSwitch()
return LightSwitch;
public void setLightSwitch(String lightSwitch)
LightSwitch = lightSwitch;
public String getDoorSwitch()
return DoorSwitch;
public void setDoorSwitch(String doorSwitch)
DoorSwitch = doorSwitch;
这是我的 readFirebase 方法
public static List<DeviceTest> handleLight()
FireBaseService fbs = null;
fbs = new FireBaseService();
device = new DeviceTest();
mylist = new ArrayList<>();
DatabaseReference ref = fbs.getDb()
.getReference("/Devices/Lamp");
ref.child("Ambient")
.addValueEventListener(new ValueEventListener()
@Override
public void onDataChange(DataSnapshot dataSnapshot)
device = dataSnapshot.getValue(DeviceTest.class);
mylist = new ArrayList<>();
for (DataSnapshot unit : dataSnapshot.getChildren())
DeviceTest value = unit.getValue(DeviceTest.class);
mylist.add(value);
@Override
public void onCancelled(DatabaseError databaseError)
);
//mylist.add(device);
return mylist;
这里是 GET 方法
@Path("/devices")
public class DeviceResource
DeviceService deviceService = new DeviceService();
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<DeviceTest> getCustomers()
return FireBaseService.handleLight();
Here is the null value in my postman
【问题讨论】:
您不能将mylist
作为方法的结果返回。 Firebase API 是异步的。因此,请检查副本以查看如何使用回调解决此问题。您可能也有兴趣阅读这篇文章,How to read data from Firebase Realtime Database using get()?。
我尝试过使用接口回调。这并没有解决问题
“那没有解决问题”没有提供足够的信息,所以我们可以提供帮助。因此,通过在 *** 上发布一个新问题,使用自己的 MCVE 向我们展示您的尝试,以便我和其他 Firebase 开发人员可以帮助您。
发布一个新问题或者我可以编辑这篇文章以提供更多信息吗?
不,发布一个新问题。
【参考方案1】:
看起来您正在返回列表,然后再填充数据。
addValueEventListener
是异步的,因此您的方法不会等待它的结果。
onDataChange
将在您的数据准备就绪时调用,但可能需要一段时间,因为它必须从网络中的外部源下载。
看看这个讨论:How to return DataSnapshot value as a result of a method?
【讨论】:
忘了说我已经尝试过使用接口类来获取方法之外的值了,但是也没有用。以上是关于Firebase Rest Api 从我的模型类中读取数据返回 null [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何从我的 android 设备访问我的本地 REST api?
如何通过 HTTP REST API 访问我的 Firebase 数据库?
Firebase 动态链接 REST API 返回 400 错误请求
PayPal Rest API、firebase 函数和 Angular 6 出现 CORS 错误