У меня есть функция, чтобы проверить, есть ли в моем приложении пароль, сохраненный в цепочке для ключей приложения, когда оно открыто.Моя функция добавлена в мой первый ViewController и выглядит так:
- (NSString *)tapGetButton{
NSDictionary *info = [[NSBundle mainBundle] infoDictionary];
NSString *version = [info objectForKey:@"CFBundleIdentifier"];
NSDictionary *query = @{
(__bridge id)kSecClass : (__bridge id)kSecClassGenericPassword,
(__bridge id)kSecAttrService: version,
(__bridge id)kSecReturnData : (__bridge id)kCFBooleanTrue,
(__bridge id)kSecMatchLimit : (__bridge id)kSecMatchLimitOne
};
CFDataRef token = nil;
// 検索
OSStatus err = SecItemCopyMatching((__bridge CFDictionaryRef)query,
(CFTypeRef *)&token);
NSString *accessToken = nil;
// success
if (err == errSecSuccess) {
NSLog(@"Success: get token");
}
// not found
else if (err == errSecItemNotFound) {
NSLog(@"NotFound: get token");
}
else {
NSLog(@"Error: get token");
}
return accessToken;
}
Эта функция работает нормально, я проверил это и вернул правильно пароль и имя пользователя, которые я сохранил.Но моя проблема появляется при запуске приложения, затем получить это, и я нахожу проблему.Когда я запускаю приложение, в didFinishLaunchingWithOptions делегата выполняется код инициализации для настройки Firebase:
[FIRApp configure];
Если я удаляю этот код, значения из цепочки для ключей возвращаются правильно, но если я добавляю этот кодвозвращаемым значением является число 1 или в других случаях длинное число ...
Использует ли Firebase цепочку для ключей?Есть другая форма инициализации Firebase?
Спасибо!
РЕДАКТИРОВАТЬ: я не использую Firebase для хранения учетных записей или пароля, я использую Firebase для обмена событиями ...