gpt4 book ai didi

java - 实时数据库快照的存储位置

转载 作者:行者123 更新时间:2023-12-02 01:45:10 25 4
gpt4 key购买 nike

我有一个按以下方式构建的实时数据库:

garage-x23df
cars
-LQ0aZ9IP5jCL9Qj5x4D
-LQ0a_R1Oxh4KazLHVZb
-LQ0ao2lvhdurSl8qaF1
-LSsIrK0tziyiJLKfDX1
...

我想在不同的 Activity 中操作这些数据(一个 Activity 显示汽车列表,另一个 Activity 显示特定汽车的数据,另一个 Activity 操作过滤的汽车列表等)。

我应该在每个 Activity 中获取一个新的 DataSnapshot 还是应该在获取数据后将其存储在本地并在 Activity 之间发送(我通过从 DataSnapshot 构建可序列化的 ArrayList 来实现这一点,并且我一直通过 Intent )。

我有大约 400 个汽车条目,每个条目包含大约 15 个字段(仅限字符串和 boolean 值),但我希望扩大这个数字。

我担心在 Activity 之间发送如此大的 ArrayList 时会出现性能问题,但另一方面,我认为为每个 Activity 获取 DataSnapshot 效率不高。

执行此操作的最佳实践方法是什么?谢谢!

最佳答案

创建一个单独的 Java 类,它可以在您想要检索项目时从数据库和所有 get 方法检索数据。例如,假设您的数据库中有一个名为“mad”的子节点,其下有其他三个节点,名为 jack、John 和 jimmy,每个节点都有不同的值,例如 jack 的字符串值为“tick”,John 的字符串值为“young' 和 jimmy 的值为 'yipy'。你的类看起来像这样

   public class Retrieve{
private String Jack;
private String Jimmy;
private String John;
public Retrieve (String Jack, String Jimmy, String John)
Jack=jack;
Jimmy=jimmy;
John=john;
public Retrieve(){}
@PropertyName(“jack”)
public String getJack(){return Jack;}
@PropertyName(“jimmy”)
public String getJimmy(){return Jimmy;}
@PropertyName(“John”)
public String getJohn(){return John;}

然后您可以检索它们并使用相同风格的代码将它们设置在应用程序的任何部分。假设您想在主要 Activity 中将 jack 的值设置为 TextView ,

   ........
@Override
public void onDataChanged(@Nullable DataSnapshot datasnapshot){
for(DataSnapshot snapshot:dataSnapshot.
getChildren()){
if(snapshot!=null){
Retrieve retrieve =snapshot.getValue(Retrieve.class);
if(retrieve!=null){
String no=retrieve.getJack();
Dast.setText(no)

关于java - 实时数据库快照的存储位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57464319/

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