2017-01-08 209 views
0

多个匿名用户数据在我的应用程序的用户无需设备之间同步待办事项列表可以工作。在这种情况下,我使用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!) 
     } 
    }) 

我存储TODO项在火力地堡,如:

todoitems 
----user_id 
--------todo-item_id 

但是,从“匿名”帐户中的所有数据已经​​丢失,当我没有登录。为什么?它应该将此“匿名”帐户与现有及其所有数据合并。或者我应该手动做这个?

+1

你希望合并哪些数据?您是指用户在Firebase中的帐户?或在数据库中? – Jad

+0

数据是Firebase中的数据,除非数据被删除,否则数据不会丢失。开发人员控制可以访问哪些数据。这个问题是超级模糊的;如果有50个匿名用户会怎么样 - 您怎么知道哪些数据属于每个匿名用户? Firebase没有合并功能,因此编写应用程序以让当前用户访问匿名数据是代码的功能。请澄清问题,以便我们可以尝试回答它。 – Jay

+0

@好的,抱歉不清楚的问题。例如,每个用户都有一个待办事项列表。所以当我连接帐户时,我应该手动将每个项目所有者更改为新用户? – Arti

回答