首页 > 解决方案 > 通过 Firebase 中的 JAVA 动态克隆/复制和填充 Layout 中的数据 - Android

问题描述

我想通过 Firebase 实时数据库中的 java 克隆/复制一个线性布局。

在此处输入图像描述

我的屏幕截图我有一个包含 user_id 的子历史记录,它是孩子等等。我想把它动态地放在这个布局中。

在此处输入图像描述

我已经静态复制了 3 次布局,但我想让它成为动态的,与当前用户 ID 的历史表条目的大小相同。

此外,我确实有一个带有 getter setter 和构造函数的类 User。

标签: androidfirebaseandroid-layoutlistviewfirebase-realtime-database

解决方案


要获取history节点下的用户 id 并使用它们将User对象添加到数据库,请使用以下代码:

String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference uidRef = rootRef.child("history").child(uid);
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String key = ds.getKey();

            DatabaseReference keyRef = rootRef.child("users").child(key);
            User user = new User(/* ... */); //Pass data to the constructor
            keyRef.setValue(user);
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d(TAG, databaseError.getMessage());
    }
};
uidRef.addListenerForSingleValueEvent(valueEventListener);

推荐阅读