如何从 FireBase 下载特定项目,但不是所有项目列表?
How to download specific item from FireBase, but not all list with items?
我想从我的 FireBase 数据库中获取特定项目,例如我的 FireBase 中有包含汽车的数组,每辆汽车都有一个唯一的 ID 我只想下载一辆按 ID 搜索的特定汽车,我想解析它到 Car java 对象而不下载所有不必要的汽车列表。
首先转到要使用 .child("cars")
搜索的特定对象列表,然后在本例中获取要搜索的特定元素是 carId,.orderByChild("carId")
最后检查其值是否等于你的.equalTo("2")
。最终结果是 fireBaseRef.child("cars").orderByChild("carId").equalTo("2");
这将 return 所有 id 为 2 的汽车。如果您知道更好的方法,请写在这里:)
您自己回答的另一种方法是将汽车存储在它们的 ID 下:
cars
car_1
make: ...
model: ...
car_2
make: ...
model: ...
然后您无需查询就可以访问汽车,这意味着事情会扩展得更好:
var id = 2;
ref.child('cars').child('car_'+id)...
请注意,在 Firebase 中将数组索引存储为键被认为是一种不好的做法,这就是为什么我在 id 前加上前缀 car_
。
我想从我的 FireBase 数据库中获取特定项目,例如我的 FireBase 中有包含汽车的数组,每辆汽车都有一个唯一的 ID 我只想下载一辆按 ID 搜索的特定汽车,我想解析它到 Car java 对象而不下载所有不必要的汽车列表。
首先转到要使用 .child("cars")
搜索的特定对象列表,然后在本例中获取要搜索的特定元素是 carId,.orderByChild("carId")
最后检查其值是否等于你的.equalTo("2")
。最终结果是 fireBaseRef.child("cars").orderByChild("carId").equalTo("2");
这将 return 所有 id 为 2 的汽车。如果您知道更好的方法,请写在这里:)
您自己回答的另一种方法是将汽车存储在它们的 ID 下:
cars
car_1
make: ...
model: ...
car_2
make: ...
model: ...
然后您无需查询就可以访问汽车,这意味着事情会扩展得更好:
var id = 2;
ref.child('cars').child('car_'+id)...
请注意,在 Firebase 中将数组索引存储为键被认为是一种不好的做法,这就是为什么我在 id 前加上前缀 car_
。