gpt4 book ai didi

ember.js - 关闭 emberfire/torii session 并注销会引发 permission_denied 错误

转载 作者:行者123 更新时间:2023-12-05 00:55:28 24 4
gpt4 key购买 nike

我正在使用 EmberFire 和 Torii 进行 session 。当我注销用户时遇到一个奇怪的问题,并且在控制台中抛出以下错误:

firebase.js:186 Error: permission_denied at /folders/-KKvrk3K_JOHxQWgR1km: Client doesn't have permission to access the desired data.(…)(anonymous function) @ firebase.js:186(anonymous function) @ firebase.js:380Tb @ firebase.js:276uc @ firebase.js:263vc @ firebase.js:262(anonymous function) @ firebase.js:449vh @ firebase.js:434g.wd @ firebase.js:425Ye.wd @ firebase.js:328(anonymous function) @ firebase.js:326vd @ firebase.js:279La.onmessage @ firebase.js:278
firebase.js:186 Error: permission_denied at /folders/-KLFp3zh5QUB7KvMF0HZ: Client doesn't have permission to access the desired data.(…)(anonymous function) @ firebase.js:186(anonymous function) @ firebase.js:380Tb @ firebase.js:276uc @ firebase.js:263vc @ firebase.js:262(anonymous function) @ firebase.js:449vh @ firebase.js:434g.wd @ firebase.js:425Ye.wd @ firebase.js:328(anonymous function) @ firebase.js:326vd @ firebase.js:279La.onmessage @ firebase.js:278
firebase.js:186 Error: permission_denied at /externalApps/-KLF_wKXtzm38EHtuQ_C: Client doesn't have permission to access the desired data.(…)(anonymous function) @ firebase.js:186(anonymous function) @ firebase.js:380Tb @ firebase.js:276uc @ firebase.js:263vc @ firebase.js:262(anonymous function) @ firebase.js:449vh @ firebase.js:434g.wd @ firebase.js:425Ye.wd @ firebase.js:328(anonymous function) @ firebase.js:326vd @ firebase.js:279La.onmessage @ firebase.js:278
firebase.js:186 Error: permission_denied at /users/-KLKUOZRBCIeCj44WMe7: Client doesn't have permission to access the desired data.(…)(anonymous function) @ firebase.js:186(anonymous function) @ firebase.js:380Tb @ firebase.js:276uc @ firebase.js:263vc @ firebase.js:262(anonymous function) @ firebase.js:449vh @ firebase.js:434g.wd @ firebase.js:425Ye.wd @ firebase.js:328(anonymous function) @ firebase.js:326vd @ firebase.js:279La.onmessage @ firebase.js:278
firebase.js:186 Error: permission_denied at /externalApps/-KLIyXUwTSrkCIL4rz7U: Client doesn't have permission to access the desired data.

我登录用户的地方有两个:

注册时
register(data) {
return this.get('firebaseApp')
.auth()
.createUserWithEmailAndPassword(data.email, data.password)
.then((registeredUser) => {
const newUser = this.store.createRecord('user', {
uid: registeredUser.uid,
firstName: data.firstName,
lastName: data.lastName,
email: registeredUser.email
})
return newUser.save();
})
.then((savedUser) => {
return this.get('session').fetch().then(() => {
return savedUser;
});
})
.then((savedUser) => {
this.replaceWith('dashboard');
});
}

对于已经注册的用户
login(email, password) {
const controller = this.controllerFor('index');
this.get('session').open('firebase', {
provider: 'password',
email: email,
password: password
})
.then((/* response */) => {
controller.set('loginError', undefined);
this.replaceWith('dashboard');
})
.catch((error) => {
controller.set('loginError', error);
});
}

这是将用户注销的操作:
logout() {
this.get('session').close().then(() => {
this.store.unloadAll();
this.replaceWith('index');
});
}

最佳答案

大约一周前,我遇到了同样的问题。似乎 Emberfire 在那里实现的方式 Ember Data 扩展不允许使用 store.unloadAll()
我打开了一个问题 here但没有看到团队的任何回应。

您可以通过直接从商店卸载用户来轻松解决此问题。只要您使用store.unloadRecord(<specificRecord>)<specificRecord.unload()然后一切正常。

在您的情况下,您可以在登录或注册新用户时保存用户记录,然后在注销时卸载该记录。如果所有这些操作不在同一个 Controller 中,您可能必须创建一个服务来处理该交互。

希望有帮助

关于ember.js - 关闭 emberfire/torii session 并注销会引发 permission_denied 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38085030/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com