Dies ist ein seltsames Problem für mich.Firebase: Benutzer Authentifiziert, aber Datenbankabfrage ist nicht initiiert
Im Grunde baue ich eine App, die beim Anmelden und Authentifizieren des Benutzers eine Seite zum Laden der Daten aus der Firebase-Datenbank und Speichern in Realm öffnet.
Alles funktioniert gut, bis ich versuchte, Benutzer ohne Anmeldung zu authentifizieren (um zu überprüfen, ob sie bereits angemeldet sind, um automatisch den Home Page View Controller zu öffnen).
Das ist mein Auth-Code
import Foundation
import FirebaseAuth
class AuthUser {
func userCheck(completion:(message:String)->()){
var message = ""
let user = FIRAuth.auth()?.currentUser
if (user != nil) {
print("User is already logged in")
message = "LoggedIn"
} else {
print("User is not logged in")
message = "notLoggedIn"
}
completion(message: message)
}
}
und dies ist mein Import Datencode
import Foundation
import FirebaseDatabase
import FirebaseAuth
import RealmSwift
class MenuDataRealm {
func importData(completion: (message:String)->()){
print("Initiating Menu Data Import...")
// Realm
let realm = try! Realm()
print("Importing...")
let ref = FIRDatabase.database().reference()
ref.child("Category").observeSingleEventOfType(.Value, withBlock: { (snapshot) in
print("Start Menu Data Retrieval")
....
Das Problem ist, dass der Log-Stop-Druck nach "Importieren ..." auf Protokollierung und stoppen Dort. Wenn ich normalerweise angemeldet (anstelle Benutzer automatisch authentifizieren), wird es perfekt durch die gesamte Funktion läuft und hört nicht auf „Importieren ...“
dies das Protokoll der normalen Login ist
2016-08-25 01:25:05.481 MannaCatering[33636:480265] Configuring the default app.
2016-08-25 01:25:05.502 MannaCatering[33636:] <FIRAnalytics/INFO> Firebase Analytics v.3200000 started
2016-08-25 01:25:05.503 MannaCatering[33636:] <FIRAnalytics/INFO> To enable debug logging set the following application argument: - FIRAnalyticsDebugEnabled
2016-08-25 01:25:05.507: <FIRInstanceID/WARNING> FIRInstanceID AppDelegate proxy enabled, will swizzle app delegate remote notification handlers. To disable add "FirebaseAppDelegateProxyEnabled" to your Info.plist and set it to NO
2016-08-25 01:25:05.515 MannaCatering[33636:] <FIRAnalytics/INFO> Successfully created Firebase Analytics App Delegate Proxy automatically. To disable the proxy, set the flag FirebaseAppDelegateProxyEnabled to NO in the Info.plist
2016-08-25 01:25:05.569 MannaCatering[33636:480305] Version 1.0.2 of Realm is now available: https://github.com/realm/realm-cocoa/blob/v1.0.2/CHANGELOG.md
User is already logged in
2016-08-25 01:25:05.817 MannaCatering[33636:] <FIRAnalytics/INFO> Firebase Analytics enabled
Logging In... with Email:[email protected] and Password:********
User is now Logged In
Redirecting to Loading Data...
Initiating Menu Data Import...
Importing...
Start Menu Data Retrieval
Completed Menu Data Import
Accessing Firebase
Retrieving Details
User Details Retrieved
Redirecting to Gallery
Dies ist das Protokoll, wenn ich versuche, den Benutzer automatisch beim Laden
2016-08-25 01:34:53.080 MannaCatering[33972:485449] Configuring the default app.
2016-08-25 01:34:53.108 MannaCatering[33972:] <FIRAnalytics/INFO> Firebase Analytics v.3200000 started
2016-08-25 01:34:53.109 MannaCatering[33972:] <FIRAnalytics/INFO> To enable debug logging set the following application argument: -FIRAnalyticsDebugEnabled
2016-08-25 01:34:53.111: <FIRInstanceID/WARNING> FIRInstanceID AppDelegate proxy enabled, will swizzle app delegate remote notification handlers. To disable add "FirebaseAppDelegateProxyEnabled" to your Info.plist and set it to NO
2016-08-25 01:34:53.159 MannaCatering[33972:] <FIRAnalytics/INFO> Successfully created Firebase Analytics App Delegate Proxy automatically. To disable the proxy, set the flag FirebaseAppDelegateProxyEnabled to NO in the Info.plist
2016-08-25 01:34:53.166 MannaCatering[33972:485629] Version 1.0.2 of Realm is now available: https://github.com/realm/realm-cocoa/blob/v1.0.2/CHANGELOG.md
User is already logged in
Redirecting to Loading Data...
Initiating Menu Data Import...
Importing...
2016-08-25 01:34:53.613 MannaCatering[33972:] <FIRAnalytics/INFO> Firebase Analytics enabled
es gibt auch eine andere Sache, erwähnenswert, die zu authentifizieren ist, dass es manchmal funktioniert und durch die gesamte Funktion ausführen funktioniert, wie es beabsichtigt war, als ich authentifiziere aut omatisch.
Dies ist jedoch immer nur Recht geschehen, nachdem ich die AuthUser.userCheck Funktion entfernen, starten Sie die App, melden Sie sich über die manuelle Eingabemethode in, und fügen Sie in die Funktion zurück.
es, dass die Auth zu sein scheint Funktion, trotz der Anzeige, dass der Benutzer angemeldet ist, ist nicht immer wahr und daher die Datenbankabfrage hat nicht funktioniert.
Allerdings habe ich das getestet, indem ich die Datenbank-Lese- und -Schreibregeln auf true änderte, was den Zugriff ohne Authentifizierung erlaubte, aber trotzdem feststand bei "Importieren ...".
Ich hoffe, dies ist nicht zu verwirrend und lassen Sie mich wissen, wenn Sie zusätzliche Informationen benötigen, um mein Problem zu verstehen.
Geben Sie Ihren JSON-Baum ... Versuchen Sie, mit Hilfe von Bruchpunkten herauszufinden, bei welcher Linie der Bruch stattgefunden hat – Dravidian