-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathFirestormQuerySnapshot.cs
37 lines (33 loc) · 1.02 KB
/
FirestormQuerySnapshot.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
using System;
using System.Collections.Generic;
using E7.Firebase.LitJson;
namespace E7.Firebase
{
[Serializable]
public struct FirestormQuerySnapshot
{
private List<FirestormDocumentSnapshot> documents;
public IEnumerable<FirestormDocumentSnapshot> Documents => documents;
public int Count => documents.Count;
public FirestormQuerySnapshot(string collectionJson)
{
documents = new List<FirestormDocumentSnapshot>();
var jo = JsonMapper.ToObject(collectionJson);
if (jo.ContainsKey("documents"))
{
foreach (JsonData tk in jo["documents"])
{
documents.Add(new FirestormDocumentSnapshot(tk.ToJson()));
}
}
else if (jo.Count == 0)
{
return;
}
else
{
throw new FirestormException($"Did not expect non-empty and not having documents at root..");
}
}
}
}