尝试在将文档添加到云中之前在CreatedAt文档字段获取服务器时间戳。因此,它可以应用于Time属性,也可以保存在本地,但是我得到的是:

我的ChatTestMessageGroup模型
public class ChatTestMessageGroup : TimeTest
{
public long MessageId { get; set; }
public string Message { get; set; }
public string Time { get; set; }
}
public class TimeTest
{
[ServerTimestamp]
public Timestamp CreatedAt { get; set; }
public Timestamp StampAt { get; set; }
}发送消息执行代码
private async Task SendTestMessageAsync()
{
if (string.IsNullOrWhiteSpace(Message)) return;
// under testing.
var test = new ChatTestMessageGroup()
{
MessageId = new Timestamp().ToDateTime().Ticks,
Message = Message.Trim(),
};
test.Time = $"{test.CreatedAt.ToDateTime():HH:mm}";
await CloudService.CS.SendMessageAsync(test);
Message = "";
}写入云代码
public async Task SendMessageAsync(ChatTestMessageGroup testMessage)
{
IDocumentReference doc = CrossCloudFirestore.Current.Instance.Collection("Testing").Document(DateTime.Now.Day.ToString());
await doc.Collection("Tester").Document(${testMessage.CreatedAt.Seconds}").SetAsync(testMessage);
}我使用的插件Plugin.CloudFirestore
发布于 2022-05-24 21:37:17
尝试在将文档添加到云中之前在CreatedAt文档字段获取服务器时间戳。
这是不可能的创建文档时,服务器就会占用时间。客户端应用程序无法确定服务器上的时间,因为它自己的时钟可能是错误的。您只能获得通过读取文档而编写的时间戳。
https://stackoverflow.com/questions/72369350
复制相似问题