Skip to content

Commit 69f16b6

Browse files
author
Stewart Miles
committed
Integrate Latest @ 170895212
- Updated all of the Unity samples to use CheckDependenciesAsync(). - Added auth error code printing to the exception message in the Auth sample. - Applied changes to make easier to automate some sample applications. CL: 170895212
1 parent 3a2b22f commit 69f16b6

File tree

8 files changed

+132
-133
lines changed

8 files changed

+132
-133
lines changed

analytics/testapp/Assets/TestApp/UIHandler.cs

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
using System;
1616
using System.Collections;
17+
using System.Threading.Tasks;
1718
using UnityEngine;
1819
using UnityEngine.UI;
1920

@@ -37,20 +38,15 @@ public class UIHandler : MonoBehaviour {
3738
// the required dependencies to use Firebase, and if not,
3839
// add them if possible.
3940
public virtual void Start() {
40-
dependencyStatus = FirebaseApp.CheckDependencies();
41-
if (dependencyStatus != DependencyStatus.Available) {
42-
FirebaseApp.FixDependenciesAsync().ContinueWith(task => {
43-
dependencyStatus = FirebaseApp.CheckDependencies();
44-
if (dependencyStatus == DependencyStatus.Available) {
45-
InitializeFirebase();
46-
} else {
47-
Debug.LogError(
48-
"Could not resolve all Firebase dependencies: " + dependencyStatus);
49-
}
50-
});
51-
} else {
52-
InitializeFirebase();
53-
}
41+
FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
42+
dependencyStatus = task.Result;
43+
if (dependencyStatus == DependencyStatus.Available) {
44+
InitializeFirebase();
45+
} else {
46+
Debug.LogError(
47+
"Could not resolve all Firebase dependencies: " + dependencyStatus);
48+
}
49+
});
5450
}
5551

5652
// Exit if escape (or back, on mobile) is pressed.

auth/testapp/Assets/TestApp/UIHandler.cs

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -67,20 +67,15 @@ public class UIHandler : MonoBehaviour {
6767
// the required dependencies to use Firebase, and if not,
6868
// add them if possible.
6969
public virtual void Start() {
70-
dependencyStatus = Firebase.FirebaseApp.CheckDependencies();
71-
if (dependencyStatus != Firebase.DependencyStatus.Available) {
72-
Firebase.FirebaseApp.FixDependenciesAsync().ContinueWith(task => {
73-
dependencyStatus = Firebase.FirebaseApp.CheckDependencies();
74-
if (dependencyStatus == Firebase.DependencyStatus.Available) {
75-
InitializeFirebase();
76-
} else {
77-
Debug.LogError(
78-
"Could not resolve all Firebase dependencies: " + dependencyStatus);
79-
}
80-
});
81-
} else {
82-
InitializeFirebase();
83-
}
70+
Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
71+
dependencyStatus = task.Result;
72+
if (dependencyStatus == Firebase.DependencyStatus.Available) {
73+
InitializeFirebase();
74+
} else {
75+
Debug.LogError(
76+
"Could not resolve all Firebase dependencies: " + dependencyStatus);
77+
}
78+
});
8479
}
8580

8681
// Handle initialization of the necessary firebase modules:
@@ -212,7 +207,15 @@ bool LogTaskCompletion(Task task, string operation) {
212207
DebugLog(operation + " canceled.");
213208
} else if (task.IsFaulted) {
214209
DebugLog(operation + " encounted an error.");
215-
DebugLog(task.Exception.ToString());
210+
foreach (Exception exception in task.Exception.Flatten().InnerExceptions) {
211+
string authErrorCode = "";
212+
Firebase.FirebaseException firebaseEx = exception as Firebase.FirebaseException;
213+
if (firebaseEx != null) {
214+
authErrorCode = String.Format("AuthError.{0}: ",
215+
((Firebase.Auth.AuthError)firebaseEx.ErrorCode).ToString());
216+
}
217+
DebugLog(authErrorCode + exception.ToString());
218+
}
216219
} else if (task.IsCompleted) {
217220
DebugLog(operation + " completed");
218221
complete = true;

database/testapp/Assets/TestApp/UIHandler.cs

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -47,39 +47,39 @@ public class UIHandler : MonoBehaviour {
4747
// the required dependencies to use Firebase, and if not,
4848
// add them if possible.
4949
void Start() {
50-
dependencyStatus = FirebaseApp.CheckDependencies();
51-
if (dependencyStatus != DependencyStatus.Available) {
52-
FirebaseApp.FixDependenciesAsync().ContinueWith(task => {
53-
dependencyStatus = FirebaseApp.CheckDependencies();
54-
if (dependencyStatus == DependencyStatus.Available) {
55-
InitializeFirebase();
56-
} else {
57-
Debug.LogError(
58-
"Could not resolve all Firebase dependencies: " + dependencyStatus);
59-
}
60-
});
61-
} else {
62-
InitializeFirebase();
63-
}
50+
leaderBoard = new ArrayList();
51+
leaderBoard.Add("Firebase Top " + MaxScores.ToString() + " Scores");
52+
53+
FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
54+
dependencyStatus = task.Result;
55+
if (dependencyStatus == DependencyStatus.Available) {
56+
InitializeFirebase();
57+
} else {
58+
Debug.LogError(
59+
"Could not resolve all Firebase dependencies: " + dependencyStatus);
60+
}
61+
});
6462
}
6563

6664
// Initialize the Firebase database:
67-
void InitializeFirebase() {
65+
protected virtual void InitializeFirebase() {
6866
FirebaseApp app = FirebaseApp.DefaultInstance;
6967
// NOTE: You'll need to replace this url with your Firebase App's database
7068
// path in order for the database connection to work correctly in editor.
7169
app.SetEditorDatabaseUrl("https://replace-with-your-project.firebaseio.com/");
7270
if (app.Options.DatabaseUrl != null) app.SetEditorDatabaseUrl(app.Options.DatabaseUrl);
71+
StartListener();
72+
}
7373

74-
leaderBoard = new ArrayList();
75-
leaderBoard.Add("Firebase Top " + MaxScores.ToString() + " Scores");
74+
protected void StartListener() {
7675
FirebaseDatabase.DefaultInstance
7776
.GetReference("Leaders").OrderByChild("score")
7877
.ValueChanged += (object sender2, ValueChangedEventArgs e2) => {
7978
if (e2.DatabaseError != null) {
8079
Debug.LogError(e2.DatabaseError.Message);
8180
return;
8281
}
82+
Debug.Log("Received values for Leaders.");
8383
string title = leaderBoard[0].ToString();
8484
leaderBoard.Clear();
8585
leaderBoard.Add(title);
@@ -90,6 +90,9 @@ void InitializeFirebase() {
9090
Debug.LogError("Bad data in sample. Did you forget to call SetEditorDatabaseUrl with your project id?");
9191
break;
9292
} else {
93+
Debug.Log("Leaders entry : " +
94+
childSnapshot.Child("email").Value.ToString() + " - " +
95+
childSnapshot.Child("score").Value.ToString());
9396
leaderBoard.Insert(1, childSnapshot.Child("score").Value.ToString()
9497
+ " " + childSnapshot.Child("email").Value.ToString());
9598
}

dynamic_links/testapp/Assets/TestApp/UIHandler.cs

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -50,20 +50,15 @@ public class UIHandler : MonoBehaviour {
5050
// the required dependencies to use Firebase, and if not,
5151
// add them if possible.
5252
void Start() {
53-
dependencyStatus = FirebaseApp.CheckDependencies();
54-
if (dependencyStatus != DependencyStatus.Available) {
55-
FirebaseApp.FixDependenciesAsync().ContinueWith(task => {
56-
dependencyStatus = FirebaseApp.CheckDependencies();
57-
if (dependencyStatus == DependencyStatus.Available) {
58-
InitializeFirebase();
59-
} else {
60-
Debug.LogError(
61-
"Could not resolve all Firebase dependencies: " + dependencyStatus);
62-
}
63-
});
64-
} else {
65-
InitializeFirebase();
66-
}
53+
FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
54+
dependencyStatus = task.Result;
55+
if (dependencyStatus == DependencyStatus.Available) {
56+
InitializeFirebase();
57+
} else {
58+
Debug.LogError(
59+
"Could not resolve all Firebase dependencies: " + dependencyStatus);
60+
}
61+
});
6762
}
6863

6964
// Exit if escape (or back, on mobile) is pressed.

invites/testapp/Assets/TestApp/UIHandler.cs

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -35,20 +35,15 @@ public class UIHandler : MonoBehaviour {
3535
// the required dependencies to use Firebase, and if not,
3636
// add them if possible.
3737
void Start() {
38-
dependencyStatus = Firebase.FirebaseApp.CheckDependencies();
39-
if (dependencyStatus != Firebase.DependencyStatus.Available) {
40-
Firebase.FirebaseApp.FixDependenciesAsync().ContinueWith(task => {
41-
dependencyStatus = Firebase.FirebaseApp.CheckDependencies();
42-
if (dependencyStatus == Firebase.DependencyStatus.Available) {
43-
InitializeFirebase();
44-
} else {
45-
Debug.LogError(
46-
"Could not resolve all Firebase dependencies: " + dependencyStatus);
47-
}
48-
});
49-
} else {
50-
InitializeFirebase();
51-
}
38+
Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
39+
dependencyStatus = task.Result;
40+
if (dependencyStatus == Firebase.DependencyStatus.Available) {
41+
InitializeFirebase();
42+
} else {
43+
Debug.LogError(
44+
"Could not resolve all Firebase dependencies: " + dependencyStatus);
45+
}
46+
});
5247
}
5348

5449
// Set the listeners for the various Invite received events.
@@ -101,18 +96,19 @@ void HandleConversionResult(Task convertTask) {
10196
}
10297
}
10398

104-
public void SendInvite() {
99+
public Task<Firebase.Invites.SendInviteResult> SendInviteAsync() {
105100
Firebase.Invites.Invite invite = new Firebase.Invites.Invite() {
106101
TitleText = "Invites Test App",
107102
MessageText = "Please try my app! It's awesome.",
108103
CallToActionText = "Download it for FREE",
109104
DeepLinkUrl = new System.Uri("http://google.com/abc"),
110105
};
111-
Firebase.Invites.FirebaseInvites.SendInviteAsync(invite).ContinueWith(
112-
HandleSentInvite);
106+
return Firebase.Invites.FirebaseInvites.SendInviteAsync(
107+
invite).ContinueWith<Firebase.Invites.SendInviteResult>(HandleSentInvite);
113108
}
114109

115-
void HandleSentInvite(Task<Firebase.Invites.SendInviteResult> sendTask) {
110+
Firebase.Invites.SendInviteResult HandleSentInvite(Task<Firebase.Invites.SendInviteResult>
111+
sendTask) {
116112
if (sendTask.IsCanceled) {
117113
DebugLog("Invitation canceled.");
118114
} else if (sendTask.IsFaulted) {
@@ -126,6 +122,7 @@ void HandleSentInvite(Task<Firebase.Invites.SendInviteResult> sendTask) {
126122
DebugLog("SendInvite: Invite code: " + id);
127123
}
128124
}
125+
return sendTask.Result;
129126
}
130127

131128
// Output text to the debug log text field, as well as the console.
@@ -141,11 +138,11 @@ public void DebugLog(string s) {
141138
scrollViewVector.y = int.MaxValue;
142139
}
143140

144-
void DisableUI() {
141+
public void DisableUI() {
145142
UIEnabled = false;
146143
}
147144

148-
void EnableUI() {
145+
public void EnableUI() {
149146
UIEnabled = true;
150147
}
151148

@@ -164,7 +161,7 @@ void GUIDisplayControls() {
164161
GUILayout.BeginVertical();
165162

166163
if (GUILayout.Button("Send Invite")) {
167-
SendInvite();
164+
SendInviteAsync();
168165
}
169166

170167
GUILayout.EndVertical();

messaging/testapp/Assets/TestApp/UIHandler.cs

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
// limitations under the License.
1414

1515
using System;
16-
using System.Collections;
16+
using System.Threading.Tasks;
1717
using UnityEngine;
1818
using UnityEngine.UI;
1919

@@ -34,21 +34,16 @@ class UIHandler : MonoBehaviour {
3434
// When the app starts, check to make sure that we have
3535
// the required dependencies to use Firebase, and if not,
3636
// add them if possible.
37-
void Start() {
38-
dependencyStatus = Firebase.FirebaseApp.CheckDependencies();
39-
if (dependencyStatus != Firebase.DependencyStatus.Available) {
40-
Firebase.FirebaseApp.FixDependenciesAsync().ContinueWith(task => {
41-
dependencyStatus = Firebase.FirebaseApp.CheckDependencies();
42-
if (dependencyStatus == Firebase.DependencyStatus.Available) {
43-
InitializeFirebase();
44-
} else {
45-
Debug.LogError(
46-
"Could not resolve all Firebase dependencies: " + dependencyStatus);
47-
}
48-
});
49-
} else {
50-
InitializeFirebase();
51-
}
37+
protected virtual void Start() {
38+
Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
39+
dependencyStatus = task.Result;
40+
if (dependencyStatus == Firebase.DependencyStatus.Available) {
41+
InitializeFirebase();
42+
} else {
43+
Debug.LogError(
44+
"Could not resolve all Firebase dependencies: " + dependencyStatus);
45+
}
46+
});
5247
}
5348

5449
// Setup message event handlers.
@@ -59,7 +54,7 @@ void InitializeFirebase() {
5954
DebugLog("Firebase Messaging Initialized");
6055
}
6156

62-
public void OnMessageReceived(object sender, Firebase.Messaging.MessageReceivedEventArgs e) {
57+
public virtual void OnMessageReceived(object sender, Firebase.Messaging.MessageReceivedEventArgs e) {
6358
DebugLog("Received a new message");
6459
var notification = e.Message.Notification;
6560
if (notification != null) {
@@ -68,6 +63,9 @@ public void OnMessageReceived(object sender, Firebase.Messaging.MessageReceivedE
6863
}
6964
if (e.Message.From.Length > 0)
7065
DebugLog("from: " + e.Message.From);
66+
if (e.Message.Link != null) {
67+
DebugLog("link: " + e.Message.Link.ToString());
68+
}
7169
if (e.Message.Data.Count > 0) {
7270
DebugLog("data:");
7371
foreach (System.Collections.Generic.KeyValuePair<string, string> iter in
@@ -77,12 +75,12 @@ public void OnMessageReceived(object sender, Firebase.Messaging.MessageReceivedE
7775
}
7876
}
7977

80-
public void OnTokenReceived(object sender, Firebase.Messaging.TokenReceivedEventArgs token) {
78+
public virtual void OnTokenReceived(object sender, Firebase.Messaging.TokenReceivedEventArgs token) {
8179
DebugLog("Received Registration Token: " + token.Token);
8280
}
8381

8482
// Exit if escape (or back, on mobile) is pressed.
85-
void Update() {
83+
protected virtual void Update() {
8684
if (Input.GetKeyDown(KeyCode.Escape)) {
8785
Application.Quit();
8886
}

remote_config/testapp/Assets/TestApp/UIHandler.cs

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -35,20 +35,15 @@ class UIHandler : MonoBehaviour {
3535
// the required dependencies to use Firebase, and if not,
3636
// add them if possible.
3737
void Start() {
38-
dependencyStatus = Firebase.FirebaseApp.CheckDependencies();
39-
if (dependencyStatus != Firebase.DependencyStatus.Available) {
40-
Firebase.FirebaseApp.FixDependenciesAsync().ContinueWith(task => {
41-
dependencyStatus = Firebase.FirebaseApp.CheckDependencies();
42-
if (dependencyStatus == Firebase.DependencyStatus.Available) {
43-
InitializeFirebase();
44-
} else {
45-
Debug.LogError(
46-
"Could not resolve all Firebase dependencies: " + dependencyStatus);
47-
}
48-
});
49-
} else {
50-
InitializeFirebase();
51-
}
38+
Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
39+
dependencyStatus = task.Result;
40+
if (dependencyStatus == Firebase.DependencyStatus.Available) {
41+
InitializeFirebase();
42+
} else {
43+
Debug.LogError(
44+
"Could not resolve all Firebase dependencies: " + dependencyStatus);
45+
}
46+
});
5247
}
5348

5449
// Initialize remote config, and set the default values.

0 commit comments

Comments
 (0)