繁体   English   中英

如何从云函数返回 Firebase 时间戳

[英]How to return a Firebase timestamp from a cloud function

我正在从 iOS 应用程序调用 Firebase 云函数。 它按预期工作,但如何从我的云函数返回一个值,该值从 iOS 读取为FIRTimestampValue

Firebase 为 Firestore 文档执行此操作。 如果我得到一个带有时间戳值的 Firestore 文档,它会像云函数结果一样作为字典对象返回,但时间戳值被编码为FIRTimestamp对象。

我想知道是否需要在服务器端进行任何特殊编码来实现这一点,或者 iOS SDK 中是否有其他一些 Firebase 函数来解析云函数的结果,以便时间戳值将被编码为FIRTimestamp对象。

这是一个例子。

Javascript(云函数):

exports.myFunction = functions.https.onCall((data, context) => {
    var dateText = "2020-10-29T21:17:51Z";
    return {"myDate": Date.parse(dateText)}
});

iOS(应用程序):

FIRFunctions *functions = [FIRFunctions functions];
FIRHTTPSCallable *function = [functions HTTPSCallableWithName:@"myFunction"];
[function callWithObject:@{} completion:^(FIRHTTPSCallableResult * _Nullable result, NSError * _Nullable error) {
    NSDictionary *data = result.data;

    // How do I get this to be a FIRTimestamp?
    FIRTimestamp *timestamp = data["myDate"]; 
}];

可调用函数仅将原始 JSON 对象返回给调用者。 JSON 只能包含对象、数组、字符串、数字、布尔值或 null。 由调用者将结果对象中的任何内容转换为它想要使用的本机数据类型。 您将无法直接从函数中获取FIRTimestampValue

相反,您的函数应该将时间戳转换为某种标准化形式(例如,自纪元以来的毫秒数),然后将该数字转换为客户端应用程序中的FIRTimestampValue

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM