Android接入firebase遇到的坑及解决方案
2020-01-02 本文已影响0人
小鹿啊小鹿
➤ 1、登录firebase账号后,判断token是否失效不起作用,错误代码如下
FirebaseAuth mainAuth = FirebaseAuth.getInstance(CommonApplication.getPolycentsApp());
FirebaseUser mUser = mainAuth.getCurrentUser();
mUser.getIdToken(false).addOnCompleteListener(new OnCompleteListener<GetTokenResult>() {
public void onComplete(@NonNull Task<GetTokenResult> task) {
if (task.isSuccessful()) {
String idToken = task.getResult().getToken();
long expressionTime = task.getResult().getExpirationTimestamp();
if (System.currentTimeMillis() > expressionTime * 1000){
//token过期,退出到登录界面
ToastUtils.showShort(SplashActivity.this,getResources().getString(R.string.token_has_out));
signOut();
}else{
//token未过期
}
} else {
// Handle error -> task.getException();
//token验证异常
}
}
});
☞ 1 的修改方法
红框中的代码应该为图2绿框中,firebase用户信息需要在获取token前重新加载
![](https://img.haomeiwen.com/i4322600/7074b5c89ce6b2af.png)
![](https://img.haomeiwen.com/i4322600/8cc4842c47e78bbd.png)
➤2、对firebase Cloud FireStore数据库一次增/删/查/改操作大于500条数据时,操作失败
firebase数据库使用Cloud fireStore时,大量数据库操作支持使用batch,但是batch操作有一个限制,一次batch上传的数据不可以超过500条,不然batch会直接回滚成0条数据,造成数据丢失;
![](https://img.haomeiwen.com/i4322600/e7d7bbbf2e37a4a9.png)
☞ 2 的解决方案
遍历需要操作的数据,判断是否大于500条,分批上传
![](https://img.haomeiwen.com/i4322600/e534bd2379d8cc96.png)