如何从 Firebase 获取按变量排序的文档(文档名称未知)[关闭]
Posted
技术标签:
【中文标题】如何从 Firebase 获取按变量排序的文档(文档名称未知)[关闭]【英文标题】:How do I get a document from Firebase that is ordered by a variable (DocumentName is not known) [closed] 【发布时间】:2020-08-27 14:50:26 【问题描述】:我已成功从 Firestore 获取文档。
下一个问题是我应该如何更改代码,以便获得添加到集合中的最新文档。
我知道我可以使用.order(by: String)
或.limit(to: Int)
之类的一些参数,但我不知道WHERE 和HOW 来使用它。
我还查看了 Firestore 文档中的答案,但只是说明了对于某些特定示例,您必须如何使用以及使用什么功能。
我添加了这个函数,它应该得到这个未知的文档和数据库模型的图片。
代码sn-p:
func getSingleproperty()
var desiredProperty: String!
let docRef = db.collection("UnKnownErrorMessages").document()
docRef.getDocument (document, error) in
if let document = document, document.exists
let dataDescription = document.data().map(String.init(describing:)) ?? "nil"
//Print all data in the document
print("Document data: \(dataDescription)")
if let allPropertiesInDocument = document.data()
let nameOfPropertyIwantToRetrieve = "read"
if let selectedProperty = allPropertiesInDocument[nameOfPropertyIwantToRetrieve]
desiredProperty = selectedProperty as? String
//Print exact the data that is in 'nameOfPropertyIwantToRetrieve' specified
print("Value of desiredProperty is \(desiredProperty.description)")
else
print("Document does not exist \(error.debugDescription)")
Firestore database model(红框内的变量,是我要排序的变量)
【问题讨论】:
firebase.google.com/docs/firestore/query-data/… 嘿@tajh,我知道这个文档存在(查找了很多次),但我不知道如何请求这个特定的术语。我一定是做错了,没有注意到他。但是无论如何,我可能没有访问文档。 【参考方案1】:这是一个真实的示例,说明如何从 Firestore 数据库中检索值。在这种情况下,我使用 this page 上的 Firestore 文档中提供的代码自定义了一个查询以满足您的需求,位于“添加数据”下。
请尝试以下方法:
func getSingleproperty()
var desiredProperty: String!
let docRef = db.collection("UnKnownErrorMessages").document("Error1234")
docRef.getDocument (document, error) in
if let document = document, document.exists
let dataDescription = document.data().map(String.init(describing:)) ?? "nil"
print("Document data: \(dataDescription)")
if let allPropertiesInDocument = document.data()
let nameOfPropertyIwantToRetrieve = "errorMessage"
if let selectedProperty = allPropertiesInDocument[nameOfPropertyIwantToRetrieve]
desiredProperty = selectedProperty as? String
print("Value of desiredProperty is \(desiredProperty)")
else
print("Document does not exist")
【讨论】:
感谢您的工作,感谢您的工作。我试了一下,出现错误postimg.cc/kB60LH2x 这是一个“警告”,而不是一个“错误”。错误将停止编译;警告没有。 learn.co/lessons/swift-xcode-warnings-errors。如果这对您有帮助,请务必投票并“接受”答案! 是的,我知道 :D 但在控制台中查看它说,该文档不存在。但它确实 好的,谢谢。帮了大忙! 所以,我查看了安全设置,允许用户从 Firestore 读取/写入/写入,是的。它处于安全模式。所以没有人被允许提出请求 XD【参考方案2】:您无法从 Firestore 文档中读取单个密钥。您总是会得到整个文档。
要访问最新文档,请参阅https://***.com/a/54178993
【讨论】:
好的,首先感谢您的澄清,我必须获取整个文档并不是什么新鲜事。我试图将函数与 swift 匹配,但后来我意识到这不起作用,因为这些函数是为 angular 而不是为 swift 制作的。对不起,如果我的问题对其他人来说似乎很愚蠢,但我不明白如何完成这项工作??以上是关于如何从 Firebase 获取按变量排序的文档(文档名称未知)[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Firebase 云 Firestore 中查询一个字段然后按另一个字段排序?
无法按日期从 Google Cloud Pub/Sub 功能中的 Firebase 获取文档
如何按'_createTime'对firestore文档进行排序?