Skip to content

Commit c57efe8

Browse files
Episode 17: iOS Cloud Firestore
1 parent aa7c4a0 commit c57efe8

File tree

2 files changed

+39
-3
lines changed

2 files changed

+39
-3
lines changed

TimeTrackerTutorial.iOS/Services/AccountService.cs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using Firebase.Auth;
44
using Foundation;
55
using TimeTrackerTutorial.iOS.Services;
6+
using TimeTrackerTutorial.Models;
67
using TimeTrackerTutorial.Services.Account;
78
using Xamarin.Forms;
89

@@ -78,5 +79,31 @@ private void OnAuthCompleted(Task task, TaskCompletionSource<bool> tcs)
7879
// user is logged in
7980
tcs.SetResult(true);
8081
}
82+
83+
public Task<AuthenticatedUser> GetUserAsync()
84+
{
85+
var tcs = new TaskCompletionSource<AuthenticatedUser>();
86+
87+
Firebase.CloudFirestore.Firestore.SharedInstance
88+
.GetCollection("users")
89+
.GetDocument(Auth.DefaultInstance.CurrentUser.Uid)
90+
.GetDocument((snapshot, error) =>
91+
{
92+
if (error != null)
93+
{
94+
// something went wrong
95+
tcs.TrySetResult(default(AuthenticatedUser));
96+
return;
97+
}
98+
tcs.TrySetResult(new AuthenticatedUser
99+
{
100+
Id = snapshot.Id,
101+
FirstName = snapshot.GetValue(new NSString("FirstName")).ToString(),
102+
LastName = snapshot.GetValue(new NSString("LastName")).ToString()
103+
});
104+
});
105+
106+
return tcs.Task;
107+
}
81108
}
82109
}

TimeTrackerTutorial.iOS/TimeTrackerTutorial.iOS.csproj

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -133,12 +133,21 @@
133133
<ItemGroup>
134134
<PackageReference Include="Xamarin.Forms" Version="4.4.0.991265" />
135135
<PackageReference Include="Xamarin.Essentials" Version="1.3.1" />
136-
<PackageReference Include="Xamarin.Firebase.iOS.Analytics">
137-
<Version>6.2.1</Version>
138-
</PackageReference>
139136
<PackageReference Include="Xamarin.Firebase.iOS.Auth">
140137
<Version>6.2.1.2</Version>
141138
</PackageReference>
139+
<PackageReference Include="Xamarin.Firebase.iOS.Analytics">
140+
<Version>6.0.4.1</Version>
141+
</PackageReference>
142+
<PackageReference Include="Xamarin.Firebase.iOS.Core">
143+
<Version>6.1.0.1</Version>
144+
</PackageReference>
145+
<PackageReference Include="Xamarin.Build.Download">
146+
<Version>0.10.0</Version>
147+
</PackageReference>
148+
<PackageReference Include="Xamarin.Firebase.iOS.CloudFirestore">
149+
<Version>1.4.2.2</Version>
150+
</PackageReference>
142151
</ItemGroup>
143152
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
144153
<ItemGroup>

0 commit comments

Comments
 (0)