在我的应用中,用户可以在设备之间无需同步待办事项列表的情况下工作。在这种情况下,我使用anonymous
用户帐户。
在AppDelegate.swift
:
FIRAuth.auth()?.addStateDidChangeListener { auth, user in
if user != nil {
print("User auth with account")
} else {
FIRAuth.auth()?.signInAnonymously() { (user, error) in
if FIRAuth.auth()?.currentUser != nil {
print("User auth anonymously")
} else {
print(error)
}
}
}
}
现在,如果用户想要同步待办事项列表,他应该登录。我使用此功能执行此操作:
let credential = FIREmailPasswordAuthProvider.credential(withEmail: self.textFieldLoginEmail.text!, password: self.textFieldLoginPassword.text!)
FIRAuth.auth()?.currentUser?.link(with: credential, completion: { user, error in
if error == nil {
FIRAuth.auth()!.signIn(withEmail: self.textFieldLoginEmail.text!,
password: self.textFieldLoginPassword.text!)
}
})
我将待办事项存储在Firebase中,如:
todoitems
----user_id
--------todo-item_id
但是当我登录时,来自“匿名”帐户的所有数据都已丢失。为什么?它应该将此“匿名”帐户合并到现有及其所有数据。或者我应该手动完成这个?