Ich versuche zu suchen, um zu sehen, ob die E-Mail, die ein Benutzer tippt, in der Datenbank vorhanden ist, nicht, um die Pfade zu kodieren. Zum Beispiel mein erstes Kind heißt "Benutzer", dann zeigt es eine AutoID und dann "E-Mail" und dann die Benutzer-E-Mail. Das Problem ist, wenn ich Benutzer und E-Mail die App abstürzen wird, benötigt es die eindeutige ID. Im suchend nur überprüfen durch alle E-Mails, um herauszufinden, wenn die eine der eingegebene BenutzerWie durchsuche ich Firebase, um festzustellen, ob ein Benutzer existiert?
- (IBAction)signIn:(id)sender {
FIRDatabaseReference *usersRef = [[FIRDatabase database] reference];
[[[[usersRef child:@"User"] child:@"-Kx_mPZvAzxZ9U3U0VXq"] child:@"Email"] observeEventType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot * _Nonnull snapshot) {
NSString *record = snapshot.value;
if(record.length > 0) {
NSLog(@"%@", record);
}else{
NSLog(@"NO");
}
}
];}
Ich denke 'NSString * record = snapshot.value ist eine falsche Methode, um 'snapshot' zu überprüfen. 'snapshot' kann' NSDictionary', 'NSArray',' NSNumber', 'NSString' sein. Wenn 'snapshot' kein' NSString' ist und Sie record.length verwenden, wird dies zum Absturz führen. Versuchen Sie, '[snapshot exists]' zu verwenden, um den Snapshot zu überprüfen. – trungduc
Wenn es nicht funktioniert, können Sie mir den Fehler zeigen? – trungduc