2016-11-09 55 views
1

我已经在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","[email protected]"); 

     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; 
} 

} 
+0

你确定应用程序被允许写入数据库吗?如果您不确定,请发布您的数据库规则。 – Wilik

+0

{ “规则”:{ “.read ”:真实, “ .WRITE”:真 }} 这些都是我在火力 –

+0

HM规则选项卡下指定我的数据库规则。你可以发布'用户'类吗? – Wilik

回答

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; 
    } 
} 

这应该工作。 :)

+1

但在我的代码中,我没有使用getter方法,那么这对我来说会如何工作? –

+0

@ shikher.mishra该类需要有公共getter方法,因此可以通过'setValue'方法分配属性。 [阅读更多](https://firebase.google.com/docs/database/android/read-and-write) – Wilik