值未插入Firebase数据库中

时间:2016-11-09 10:16:39

标签: android firebase firebase-realtime-database

我在Firebase中创建了一个帐户,我创建了一个名为" Fieldglass"的项目。

现在点击firebase帐户中的数据库选项卡,我得到一个名为fieldglass-aeca7的数据库

现在我想在其中插入值。我在OnCreate()函数中为它编写了一个代码。

final CountDownLatch sync = new CountDownLatch(1);

        DatabaseReference db= FirebaseDatabase.getInstance().getReference("fieldglass-aeca7");
        String userId=db.push().getKey();
        User u=new User("shikher","shikher.mishra@yahoo.com");

        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        db.child(userId).setValue(u).addOnCompleteListener(new OnCompleteListener<Void>() {
            @Override
            public void onComplete(Task<Void> task) {
                sync.countDown();

            }
        });
        try{
            sync.await();

        }

        catch (Exception e)
        {
            System.out.print("there is an exception here in sync.await()");
        }

现在运行此代码后,值不会插入控制台的数据库中。 如何将值插入Firebase数据库?

用户类是:

package com.example.hsports.galleryusingimageswitcher; /**
 * Created by I324671 on 11/7/2016.
 */

import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;




public class User {

public String name;
 public String email;

 public User(){
 }
 public User(String name,String email)
 {
  this.name=name;
  this.email=email;
 }

}

1 个答案:

答案 0 :(得分:1)

您缺少User模型类属性的getter方法。

来自Read and Write Data on Android

  

传递自定义Java对象,如果定义它的类具有默认构造函数,该构造函数不带参数并且具有公共getter 以便分配属性。

public class User {
    public String name;
    public String email;

    public User() {}
    public User(String name,String email) {
        this.name=name;
        this.email=email;
    }
    public String getName() {
        return this.name;
    }
    public String getEmail() {
        return this.email;
    }
}

这应该有效。 :)