如何将 NSDate 值插入 Cloud Firestore 文档

Posted

技术标签:

【中文标题】如何将 NSDate 值插入 Cloud Firestore 文档【英文标题】:How to insert NSDate value into a Cloud Firestore document 【发布时间】:2020-10-05 22:06:44 【问题描述】:

如何将 NSDate 中的时间值插入 Cloud Firestore 文档?

我可以像这样插入当前时间,但我不确定如何将 NSDate 转换为 FIRFieldValue 表示。

NSMutableDictionary *item = [NSMutableDictionary new];
item[@"someDate"] = [FIRFieldValue fieldValueForServerTimestamp];

【问题讨论】:

【参考方案1】:

向 Firestore 添加数据的最佳方式是使用字典的形式。

Firestore 文档(链接如下)提供了一个带有 NSDate 对象的示例,我已对其进行了修剪并包含在下面。

NSDictionary *docData = @
  @"dateExample": [FIRTimestamp timestampWithDate:[NSDate date]]
;

[[[self.db collectionWithPath:@"data"] documentWithPath:@"one"] setData:docData
completion:^(NSError * _Nullable error) 
  if (error != nil) 
    NSLog(@"Error writing document: %@", error);
   else 
    NSLog(@"Document successfully written!");
  
];

否则,Firestore 不支持存储自定义对象。有一些环形交叉路口使它非常平滑,但是...请参阅 prev stack overflow question 和 firestore documentation(滚动到自定义对象部分)

【讨论】:

以上是关于如何将 NSDate 值插入 Cloud Firestore 文档的主要内容,如果未能解决你的问题,请参考以下文章

Swift:无法将“NSDate”类型的值转换为预期的参数类型“NSDateComponents”

UILocalNotification - 在 NSDate 前 30 分钟触发

将 NSDate 的默认值设置为今天

Google Cloud Messaging (GCM) 可以与 Kindle Fire 搭配使用吗?

如何在 Swift 中从 NSDate 获取日、月和小时

Swift 和 ObjectMapper:具有最小值的 NSDate