Это моя функция start() до добавления пакета базы данных:
Код: Выделить всё
Firebase.Auth.FirebaseAuth auth;
Firebase.Auth.FirebaseUser user;
Firebase.DependencyStatus dependencyStatus = Firebase.DependencyStatus.UnavailableOther;
void Start () {
dependencyStatus = Firebase.FirebaseApp.CheckDependencies();
if (dependencyStatus != Firebase.DependencyStatus.Available) {
Firebase.FirebaseApp.FixDependenciesAsync().ContinueWith(task => {
dependencyStatus = Firebase.FirebaseApp.CheckDependencies();
if (dependencyStatus == Firebase.DependencyStatus.Available) {
InitializeFirebase();
} else {
// This should never happen if we're only using Firebase Analytics.
// It does not rely on any external dependencies.
Debug.LogError(
"Could not resolve all Firebase dependencies: " + dependencyStatus);
}
});
} else {
InitializeFirebase();
}
}void InitializeFirebase() {
Debug.Log("Setting up Firebase Auth");
auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
auth.StateChanged += AuthStateChanged;
}
// Track state changes of the auth object.
void AuthStateChanged(object sender, System.EventArgs eventArgs) {
if (auth.CurrentUser != user) {
if (user == null && auth.CurrentUser != null) {
Debug.Log("Signed in " + auth.CurrentUser.DisplayName);
} else if (user != null && auth.CurrentUser == null) {
Debug.Log("Signed out " + user.DisplayName);
}
user = auth.CurrentUser;
//Debug.Log("Signed in " + auth.CurrentUser.DisplayName);
}
}
Код: Выделить всё
Firebase.Auth.FirebaseAuth auth;
Firebase.Auth.FirebaseUser user;
DatabaseReference mRef;
Firebase.DependencyStatus dependencyStatus = Firebase.DependencyStatus.UnavailableOther;
void Start () {
dependencyStatus = Firebase.FirebaseApp.CheckDependencies();
if (dependencyStatus != Firebase.DependencyStatus.Available) {
Firebase.FirebaseApp.FixDependenciesAsync().ContinueWith(task => {
dependencyStatus = Firebase.FirebaseApp.CheckDependencies();
if (dependencyStatus == Firebase.DependencyStatus.Available) {
InitializeFirebase();
} else {
// This should never happen if we're only using Firebase Analytics.
// It does not rely on any external dependencies.
Debug.LogError(
"Could not resolve all Firebase dependencies: " + dependencyStatus);
}
});
} else {
InitializeFirebase();
}
void InitializeFirebase() {
Debug.Log("Setting up Firebase Auth");
auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
auth.StateChanged += AuthStateChanged;
FirebaseApp app = FirebaseApp.DefaultInstance;
app.SetEditorDatabaseUrl("https://testapp-509c4.firebaseio.com/");
mRef = FirebaseDatabase.DefaultInstance.RootReference;
}
// Track state changes of the auth object.
void AuthStateChanged(object sender, System.EventArgs eventArgs) {
if (auth.CurrentUser != user) {
if (user == null && auth.CurrentUser != null) {
Debug.Log("Signed in " + auth.CurrentUser.DisplayName);
} else if (user != null && auth.CurrentUser == null) {
Debug.Log("Signed out " + user.DisplayName);
}
user = auth.CurrentUser;
//Debug.Log("Signed in " + auth.CurrentUser.DisplayName);
}
}
, которые работали нормально, прежде чем я попытаюсь подключиться в базу данных Firebase
Logcat Android показывает это каждый раз, когда я выполняю одну из этих функций (даже если она выходит из строя или нет):
Код: Выделить всё
12-01 00:55:51.214 4615-4639/? I/Unity: NullReferenceException: Object reference not set to an instance of an object
at Intro.Login () [0x00000] in :0
at UnityEngine.Events.InvokableCall.Invoke (System.Object[] args) [0x00000] in :0
at UnityEngine.Events.InvokableCallList.Invoke (System.Object[] parameters) [0x00000] in :0
at UnityEngine.Events.UnityEventBase.Invoke (System.Object[] parameters) [0x00000] in :0
at UnityEngine.Events.UnityEvent.Invoke () [0x00000] in :0
at UnityEngine.UI.Button.Press () [0x00000] in :0
at UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) [0x00000] in :0
at UnityEngine.EventSystems.ExecuteEvents.Execute (IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData) [0x00000] in :0
at UnityEngine.EventSystems.ExecuteEvents.Execute[IPointerClickHandler] (UnityEngine.GameObject target, UnityEngi
12-01 00:55:51.224 21998-22429/? E/AsyncOperation: serviceID=16, operation=ValidateAuthServiceOperation
java.lang.NullPointerException: onPostInitComplete can be called only once per call to getRemoteService
at iri.a(:com.google.android.gms:74)
at ioj.a(:com.google.android.gms:987)
at ipf.a(:com.google.android.gms:66)
at ixg.a(:com.google.android.gms:284)
at eks.a(:com.google.android.gms:125)
at eks.a(:com.google.android.gms:113)
at ixn.run(:com.google.android.gms:113)
at jaq.run(:com.google.android.gms:450)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at jew.run(:com.google.android.gms:17)
at java.lang.Thread.run(Thread.java:841)
Спасибо
Подробнее здесь: https://stackoverflow.com/questions/409 ... -in-one-pr
Мобильная версия