2017-05-27 106 views
0

我试图学习如何将我的android应用程序连接到firebase数据库。我试过以下代码:Firebase数据库没有写入数据

mDatabase = FirebaseDatabase.getInstance().getReference(); 
productCloudEndPoint = mDatabase.child("Sample"); 
productCloudEndPoint.push().setValue("Hello World"); 

但是,当我查看Firebase控制台时,没有任何内容会写入。我也制定了规则。

{ 
    "rules": { 
    ".read": true, 
    ".write": true 
    } 
} 

我错过了什么吗?谢谢

+0

你会尝试productCloudEndPoint.push()。child(“value”)。setValue(“Hello World”); –

+2

很难说这段代码有什么问题。您的logcat是否显示任何相关的警告/错误消息? –

+0

您是否在尝试执行此代码时进行身份验证?还尝试更改:productCloudEndPoint.push()。setValue(“Hello World”);到:productCloudEndPoint.setValue(“Hello World”); –

回答

0

我有同样的问题,问题是我使用模拟器。你必须使用物理设备。

0

当您使用set()方法时,不要使用push方法,set()方法会将该值设置为引用。

例如:

<database-ref>/users/{UserId}/ 
username: {name} 

查询将是:

mDatabase.child("users").child(userId).child("username").setValue(name); 

你的情况:

mDB.child("sample").setValue("Hello World"); 

虽然用于发布新的自定义对象推送方法,火力地堡生成唯一的ID和保存到这些对象的列表中。 注意:Push()方法用于javaScript。

实施例: 您有像

Class User{ 
String name; 
String email; 
} 

具有属性的用户对象要保存这样的对象,则可以简单地使用push()方法。 Firebase将使用自动生成的唯一Id进行保存。

<db-ref>/users/{uniqueId}/ 

对于JAVA:等价的方法是put()方法。