如何从 Firebase 快照添加变量
Posted
技术标签:
【中文标题】如何从 Firebase 快照添加变量【英文标题】:How to add variables from a firebase snapshot 【发布时间】:2022-01-18 14:20:01 【问题描述】:我知道这个问题已经被问过好几次了,但没有一个解决方案适合我。这是我的快照
Snap (CaseExtend)
NYxdSlq8yOgQd3phssRlD =
CaseMinute =
WMKuImjuH0qPIGJhHHJKv =
caseMinute = "";
dateTime = "Dec 1, 2021 12:20 PM";
minuteId = WMKuImjuH0qPIGJhHHJKv;
userId = OtRFaqilTigWvEkUCASvCoEegny1;
;
;
CaseParticipant =
3f7nqmcWFTenePkEB9KoMHLzVtk2 =
userId = 3f7nqmcWFTenePkEB9KoMHLzVtk2;
;
OtRFaqilTigWvEkUCASvCoEegny1 =
userId = OtRFaqilTigWvEkUCASvCoEegny1;
;
;
caseId = Oj7TwzDC3HQMJKyTb8Ebi;
caseNumber = TEST;
court = "Labour Tribunal";
courtRoomNo = "";
date = "2021-12-01";
extendId = NYxdSlq8yOgQd3phssRlD;
extendStatus = "Not Extend";
location = "";
participantCount = 2;
profilePicture = "https://firebasestorage.googleapis.com/v0/b/lege-155e1.appspot.com/o/Profile%20Pictures%2FOtRFaqilTigWvEkUCASvCoEegny1.jpg?alt=media&token=676226fa-638b-4175-a8d5-247095f6b86a";
step = TBM;
time = "";
userId = OtRFaqilTigWvEkUCASvCoEegny1;
;
我使用以下代码检索快照,
ref.child("CaseExtend").queryOrdered(byChild: "userId").queryEqual(toValue: "OtRFaqilTigWvEkUCASvCoEegny1" ).observe(.value, with: (DataSnapshot) in
)
我想为不同的变量添加 caseID、caseNumber、date.. 和其他值。反正我能做到吗?
【问题讨论】:
您的意思是要从 firebase 获取这些值并将它们分配给您应用中的新变量吗? 是的,这就是我想要的。 您可以在您的应用程序中使用您想要的变量创建一个结构,然后从 firebase 检索后您可以将字典 [String: Any] 传递给该结构,然后您就可以得到您想要的。 【参考方案1】:首先,您将在 casetExtend 节点中获取所有数据,您要分配的所有变量都不在该节点下。为此,您需要导航一级子节点。
ref.child("CaseExtend").queryOrdered(byChild: "userId").queryEqual(toValue: "OtRFaqilTigWvEkUCASvCoEegny1" ).observe(.value, with: (snapshot) in
for caseSnapshot in snapshot.children.allObjects as! [DataSnapshot]
let dict = caseSnapshot.value as? [String: AnyObject] // assign the snapshot to a dictionary
let court = dict!["court"] as? String ?? "unknown"; // assign the variable
)
【讨论】:
以上是关于如何从 Firebase 快照添加变量的主要内容,如果未能解决你的问题,请参考以下文章