如何使用JavaScript将用户生成的数据保存到Firebase中的用户

时间:2016-04-08 03:38:37

标签: javascript firebase

我正在尝试使用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
                            });
                        }
                    });
                }
            });

1 个答案:

答案 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中已涵盖此内容,我强烈建议您阅读。