Jak*_*ath 3 android timestamp firebase firebase-realtime-database
我正在开发一个简单的游戏,用户每天都会获得奖金。我想从Firebase服务器获取当前日期和时间,因为我不想依赖可以操纵的设备时间。
我在firebase中经历了ServerValue.TIMESTAMP,但不知道如何使用它返回一个带有时间戳的值的地图,如何将该时间戳转换为日期,当用户单击每日时,我想从firebase获取今天的日期奖金。
由于Firebase引入了可调用函数,因此您可以通过在Firebase Cloud Functions中创建可调用函数来轻松地在应用程序中使用它。在中index.js,创建一个Function并使其返回当前时间戳
exports.getTime = functions.https.onCall((data,context)=>{
return Date.now()
})
Run Code Online (Sandbox Code Playgroud)
然后将其部署到Firebase Cloud Functions
然后在您的Android应用中添加Callable Functions依赖项
implementation 'com.google.firebase:firebase-functions:16.1.0'
Run Code Online (Sandbox Code Playgroud)
然后像这样在您的应用中调用该函数,并确保您输入的函数名称与Cloud Function 中的函数名称“ getTime ”相同
FirebaseFunctions.getInstance().getHttpsCallable("getTime")
.call().addOnSuccessListener(new OnSuccessListener<HttpsCallableResult>() {
@Override
public void onSuccess(HttpsCallableResult httpsCallableResult) {
long timestamp = (long) httpsCallableResult.getData();
}
});
Run Code Online (Sandbox Code Playgroud)
如果要在多个类中调用此方法,还可以创建一个Simple接口
public interface OnGetServerTime {
void onSuccess(long timestamp);
void onFailed();
}
public void getServerTime(final OnGetServerTime onComplete) {
FirebaseFunctions.getInstance().getHttpsCallable("getTime")
.call()
.addOnCompleteListener(new OnCompleteListener<HttpsCallableResult>() {
@Override
public void onComplete(@NonNull Task<HttpsCallableResult> task) {
if (task.isSuccessful()) {
long timestamp = (long) task.getResult().getData();
if (onComplete != null) {
onComplete.onSuccess(timestamp);
}
} else {
onComplete.onFailed();
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4604 次 |
| 最近记录: |