java向Firebase写入数据只能在刚刚登录后才能工作,除非注销并再次登录,否则无法成功工作
我正在安卓上向Firebase写入数据。在用户刚刚成功登录后,编写过程可以很好地工作。我可以看到数据已经在我的控制台上更新,CompletionListener也相应地被触发。然而,在同一用户保持登录状态的情况下,应用程序多次执行写入操作后,除非该用户注销并再次登录,否则它将无法工作。我无法在控制台上查看数据,也无法在应用程序中触发CompletionListener。 以下是我的写作过程代码:
new Thread(new Runnable(){
public void run(){
for(int i = 0 ; i < dataBufferList.size();++i){
myRef.push().setValue(dataBufferList.get(i), new DatabaseReference.CompletionListener() {
@Override
public void onComplete(DatabaseError databaseError, DatabaseReference dataRef) {
if (databaseError != null) {
System.out.println("Data saved : error " + databaseError.getMessage());
} else {
System.out.println("Data saved successfully.");
}
}
});
}
dataBufferList.clear();
}
}).start();
每次遇到问题时,我都会收到一条日志消息:
W/DynamiteModule:com的本地模块描述符类。谷歌。火力基地。找不到身份验证
然而,我总是打电话 FirebaseUser currentUser=mAuth。getCurrentUser() 在我开始在Firebase上写之前,它总是返回正确的当前用户
此外,我希望我的应用程序在登录后保持登录状态,这样我就不必每次打开应用程序时都登录。以下是实现这一点的代码:
@Override
public void onStart() {
super.onStart();
// Check if user is signed in (non-null) and update UI accordingly.
FirebaseUser currentUser = mAuth.getCurrentUser();
if (currentUser != null) {
Log.d(LOGTAG,"onStart : current user :" + currentUser.getDisplayName());
}
else {
Log.d(LOGTAG,"onStart : current user : null");
}
currentUserName = currentUser.getDisplayName();
}
我是不是错过了什么台阶
共 (0) 个答案