1

在我的应用程序中,我有一个我认为是相当标准User的模型,其 ID 基于经过身份验证的用户的fbRef.getAuth().uid值(在我的情况下由匿名身份验证提供程序分配)。我有一个全局用户,它随着用户身份验证/取消身份验证而动态更新,使用基本this.store.find('user')调用填充。

当用户注销,然后使用相同的身份验证 uid 重新验证/登录时,就会出现问题。我在其他当前连接的浏览器的控制台中收到以下错误:

未捕获的错误:尝试pushedData在状态为 root.deleted.uncommitted 时处理事件。

(但是请注意,执行注销/重新登录的用户/浏览器没有收到错误)

在这种情况下我还需要做些什么来确保 emberfire 自动删除的记录在每个连接的客户端的缓存存储中完全提交,或者这是某种限制?

作为参考,以下是我在用户登录时创建记录的方式:

var user = this.store.createRecord('user', {
    id: fbRef.getAuth().uid,
    nickname: nickname,
    joinedAt: new Date()
});

user.save();

当他们退出时:

this.store.find('user', fbRef.getAuth().uid).then(function(user) {
    user.destroyRecord();
});
4

1 回答 1

5

每次调用authAnonymously()时,每次创建新会话时都会创建一个新的 uid。您可以在 Firebase 仪表板中配置会话长度。

如果您想让用户登录和退出您的应用程序,我建议使用 Firebase 的电子邮件和密码身份验证或通过我们的任何第三方提供商进行身份验证。

于 2014-10-16T21:19:55.933 回答