我的Firebase客户端应用程序与自定义后端服务器通信,因此我需要将ID每个HTTPS请求的令牌发送到我的服务器.从参考,
Should only be set to true if the token is invalidated out of band
Run Code Online (Sandbox Code Playgroud)
forcerefresh布尔值设置为true? forcerefresh在我的自定义服务器的每个HTTPS请求期间获取令牌(使用为false)是否可以.(当它作为任务返回时,我应该将它存储在我的本地缓存中,这样我就不必添加任何任务侦听器并且可以在同一个线程中处理请求)编辑: 现在谷歌提供新的API,如果它已过期将自动刷新令牌.
getIdToken(forceRefresh) returns firebase.Promise containing string
Run Code Online (Sandbox Code Playgroud)
来自Google文档
如果当前令牌尚未过期,则返回当前令牌,否则将刷新令牌并返回新令牌
我正在使用Retrofit 2,在使用Firebase Auth之前我曾经将我的令牌存储SharedPreferences在我的HttpInterceptor
@Named("rest_api")
@Singleton
@Provides
Interceptor provideRESTInterceptor(final UserManager userManager) {
return new Interceptor() {
@Override
public Response intercept(final Chain chain) throws IOException {
final Request original = chain.request();
Request request = original.newBuilder()
.header("Accept", "application/json")
.header("Authorization", "XXXX " + sharedPreference.getToken())
.method(original.method(), original.body())
.build();
Response response = chain.proceed(request);
return response;
}
};
}
Run Code Online (Sandbox Code Playgroud)
我怎么能用这样的东西来实现
FirebaseUser.getToken(false/true)呢?我不知道如何等待侦听器回调,而不是使用firebase令牌处理请求.
我也想在这里检查令牌有效性以及它是否即将到期 getToken(true)
我有按日期排序的旅行数据(大集合)列表。
现有行为
我将所有行程数据存储到SqlLite Db中。对于添加的每个新数据,我通常会收到fcm通知,并且使用上次更新的时间概念仅同步了添加的新数据。这样,当cx打开应用程序时,他将始终从我的数据库中读取数据,从而节省了读取和网络操作。
我如何在Firestore中实现相同目标?
需要考虑的几个问题:
我有一个带有用于处理 MemCache 请求的静态方法的类,它具有带有不同参数的不同方法。
每当在该类中调用某个方法时,我想增加 TotalRequest 计数器,如果类内的任何方法发生异常,我想增加失败计数器。有什么办法可以做到吗?
如果自然静态有一些问题,请告诉我?而且它应该是一个高效的。