首页 > 解决方案 > 难以在 Firebase 中将对象保存为子对象(使用 Android Studio)

问题描述

我对 Firebase 比较陌生。我正在尝试以编程方式填充数据库,如下图所示,该数据库当前由许多成员组成,每个成员都有一个字符串 childId 和一个字符串名称。

我现在尝试为每个成员添加一个类型为 ChildSocialSkills 的新字段,这是我创建的自定义 Java 对象。

我当前的 Firebase 数据库: 在此处输入图像描述

执行以下操作以提交到数据库:

        ref = FirebaseDatabase.getInstance().getReference().child("Members");

    Child child = new Child();

    childName = (EditText) findViewById(R.id.childName);
    child.setName(childName.getText().toString().trim());
    child.setChildId();

    //commit to database
    ref.child(childName.getText().toString().trim()).setValue(child);

以下是正在填充到数据库中的 Child 类。可以看出,每当创建一个孩子时,都会初始化一个新的 ChildSocialStory。

public class Child {
private String name;
private String childId;

private ChildSocialStories socialStory;

public Child () {
    socialStory = new ChildSocialStories();
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public void setChildId() {
    childId = UUID.randomUUID().toString();
}

public String getChildId() {
    return childId;
}

public ChildSocialStories getSocialStory() {
    return socialStory;
}

为了展示一切,我将在下面展示 ChildSocialStoryClass,它只包含一个默认构造函数:

public class ChildSocialStories {

public ChildSocialStories () {

}}

省略 ChildSocialStory 时,一切正常,成员已成功添加到 Firebase 数据库。但是,每当我添加 ChildSocialStory 时,每次都会出现以下错误。

在此处输入图像描述

该错误与下面的代码行有关,它将子代码提交到数据库(也可以在上面第一段代码的最后一行看到):

ref.child(childName.getText().toString().trim()).setValue(child);

我的目标是成功地将 ChildSocialStories 的对象添加为“成员”的孩子(最终将拥有自己的其他孩子)。这有可能吗?任何形式的帮助将不胜感激。

提前致谢!

标签: javaandroidfirebasefirebase-realtime-database

解决方案


推荐阅读