我在使用Firebase和Android时遇到了一些问题。我想将函数的输出保存到我想稍后使用的变量,但我不知道如何为函数提供正确的参数。
public void getBasicData(DataSnapshot dataSnapshot textViewDataGet) {
textViewDataGet = dataSnapshot.child("Users").getValue();
}
在上面的函数中,我已经声明了一个名为textViewDataGet的字符串,并且所有库都已正确导入。我试图对数据库实现基本的写入功能。但AndroidStudio不想使用字符串。但是,如果删除变量并将其保留,则不会显示任何错误。提前谢谢!
迈克尔
答案 0 :(得分:2)
您首先必须使用 getInstance 创建一个实例,并声明一个数据引用,您将使用该数据引用来访问数据库的数据。
FirebaseDatabase dbDay = FirebaseDatabase.getInstance();
final DatabaseReference day = dbDay.getReference("Day");
这是我通过检查数据何时更改来找到如何做的唯一方法
day.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
int value = dataSnapshot.getValue(int.class);
textViewDataGet = value;
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
答案 1 :(得分:0)
不要让方法返回void,而是让它返回String
,以便您可以将其保存以供以后使用。这是因为Java严格按值传递。
当你为一个函数声明一个参数然后将它传递给一个函数时,你实际上是在传递变量的地址而不是变量本身,所以你对参数所做的任何改变都只会影响它,而不会影响它。作为解决方案,您可以尝试以下
public String getBasicData(DataSnapshot dataSnapshot) {
return dataSnapshot.child("Users").getValue();
}
然后你可以在适当的地方使用它
textViewDataGet = getBasicData(dataSnapshot);
希望这会有所帮助:)