我有点被卡住了。在我的代码中,我让用户通过facebook注册/登录。我使用Oauth令牌,这要归功于我用来登录用户的cordova facebook插件。
如果用户不存在,我会在用户下的firebase数据库中添加一些facebook信息(姓名、电子邮件、个人资料图片(。
我的问题是如何检索这个用户(不知道自动生成的密钥(。假设用户在facebook中修改了他的个人资料图片,因为我只在第一次连接时存储了数据,所以它没有反映在我的应用程序中。
我的数据库如下:
users: {
-JtGR-24WUU2HVX3x5c3d: {
image: http//
name: joe
email: cezd
},
-JtGR-24WUU2HVX3x5c43r: {
image: http//
name: john
email:cezs
}
}
谢谢你的帮助。
Arnaud
以下是您应该如何做到的:
创建帐户(并且用户登录(后,您将可以通过$firebaseAuth
服务访问其用户id。以下是您的操作方法:
// Get the unique id for the user
var uid = $firebaseAuth(<your-firebase-ref>).$getAuth().uid;
然后,我们可以在这个uid
变量下存储内容,从而可以轻松地为我们的帐户执行CRUD操作。在uid
下面有一个名为programs
的数组,它包含一些程序:
// Specify the path we will be working with
var path = uid + '/programs';
接下来,我们可以使用我们刚刚定义的路径获取programs
数组:
// Get all programs, make sure to include a / after your reference
var programs = $firebaseArray(<your-firebase-ref> + path);
加载完成后,将程序分配给$scope
,这样我们就可以在前端使用它。
programs.$loaded()
.then(function(data) {
$scope.programs = data;
})
.catch(function(err) {
$scope.error = 'There was an error with the request';
});