我正在尝试从Firebase读取数据,但是虽然我正在使用教程,但android studio并未读取数据
我试图将android studio发送的链接复制到firebase:
DatabaseReference myRef = database.getReference(“ USERS”)。child(uID).child(“ DeviceID”);
textview.setText(myRef.toString());
和过去的结果在浏览器中,它显示了我在firebase中的结果,但是当我尝试使用它来获取数据时,它没有检索任何内容。
这是我试图通过调用函数来阅读的方法:
textview.setText(ReadDeviceId);
''''''''''''''''''''''''''''''''''
private String ReadDeviceId(){
FBUser = FirebaseAuth.getInstance().getCurrentUser();
uID = FBUser.getUid();
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("USERS").child(uID).child("DeviceID");
myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
r_deviceID = dataSnapshot.getValue(String.class);
}
@Override
public void onCancelled(DatabaseError error) {
// Failed to read value
r_deviceID = "no userID";
}
});
return r_deviceID;
}
'''''''''''''''''''''''''''''''''''''''''
知道我的Firebase数据库安全规则是:
'''''''''''''''''''''''''''''''
{
“规则”:{
“ .write”:“ auth!= null”,
“ .read”:true
}
}
'''''''''''''''''''
但什么也没显示
最佳答案
你可以试试这个代码
private String ReadDeviceId(){
FBUser = FirebaseAuth.getInstance().getCurrentUser();
uID = FBUser.getUid();
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef =
database.getReference("USERS").child(uID).child("DeviceID");
myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(Datasnapshot snapshot : dataSnapshot.getChildren)
{
//try to map it with your on model class and replace the String with your model class
r_deviceID = snapshot.getValue(String.class)
}
//r_deviceID = dataSnapshot.getValue(String.class);
}
@Override
public void onCancelled(DatabaseError error) {
// Failed to read value
r_deviceID = "no userID";
}
});
return r_deviceID;
}