我正在尝试使用Firebase创建待办事项列表。用户通过Google进行身份验证后,用户可以创建任务,但我无法弄清楚如何将任务存储给用户。
我正在尝试使用.child()
,但我不知道每个用户的uid是什么。我也试过.orderByChild()
,但似乎也没有(或者我没有正确使用它)。
我试过了:
var firebase = new Firebase('https://<my-app>.firebaseio.com');
firebase.child('users').child(authData.uid).child('task').push({
status: 'In Progress',
taskName: $taskName.val(),
taskDescription: $taskDescription.val(),
taskCategory: $taskCategory.val()
})
authData.uid由Google提供身份验证:
firebase.authWithOAuthPopup('google', function(error, authData) {
if (error) {
console.log("Login Failed!", error);
} else {
// Stores user in Firebase
firebase.onAuth(function(authData) {
if (authData) {
firebase.child('users').child(authData.uid).set({
name: authData.google.displayName
});
}
});
}
});
答案 0 :(得分:1)
添加任务时,您可以构建如下路径:
firebase.child('users').child(authData.uid).child('task').push({
这不起作用,因为此时authData
不再可用。
相反,您可以通过调用ref.getAuth()
获取当前的身份验证数据并执行:
var uid = firebase.getAuth().uid;
firebase.child('users').child(uid).child('task').push({
请注意guide on Firebase Authentication中已涵盖此内容,我强烈建议您阅读。