FirebaseDatabase仅保存ID

时间:2018-10-19 21:03:08

标签: java android firebase firebase-realtime-database

我的Firebase数据库仅保存对象的ID,而不保存属性。

Firebase与我的android应用程序连接,可以保存和撤退数据库中的数据,当我尝试向数据库中添加数据时,将创建firebase中的对象,但是之后我要添加到该对象的属性在数据库中不保存。

有人可以帮助我吗?

我的数据库类:

public class Database
{
   private static Database database = null;

   private static FirebaseDatabase firebaseDatabase;

   private static DatabaseReference tractorRef;

   private Database()
   {
       firebaseDatabase = FirebaseDatabase.getInstance();

       tractorRef = firebaseDatabase.getReference("tractor");
   }

   public static void setInstance()
   {
       if(database == null)
       {
           database = new Database();
       }
   }

   public static DatabaseReference getTractorRef()
   {
    setInstance();
    return tractorRef;
   }
} 

我尝试保存的用户类别:

import android.util.Log;

public class User
{
    private String id;
    private String name;
    private int age;

    public User(String id, String name, int age)
    {
        this.id = id;
        this.name = name;
        this.age = age;

        Log.d("User: ID:", "" + this.id);
        Log.d("User: NAME:", "" + this.name);
        Log.d("User: AGE:", "" + this.age);

    }

    public String getId() {
        return id;
    }
}

我用于在Firebase中添加对象的代码:

User user = new User(Database.getTractorRef().push().getKey(), "Someone", 21);
Database.getTractorRef().child(user.getId()).setValue(user);

我Log.d()中的输出:

...... D /用户:ID :: -LPD2UbA4sVqPXxWFv0V

...... D /用户:NAME ::某人

...... D /用户:年龄:: 21

我在Firebase数据库中看到的内容:

Output from Firebase Database

1 个答案:

答案 0 :(得分:1)

这只是保存ID,因为getId()是您定义的唯一公共获取方法。如果要保存其他字段,请同时公开其他字段的吸气剂。