用户数据未正确创建或未正确插入Firebase数据库中

艾米莉

我正在尝试编写一些代码,这些代码将在Firebase应用程序(基于Web)中创建/插入用户数据。

我想在用户使用他们的电子邮件和密码(该部分正常工作)进行身份验证之后执行此操作。

但是我在将用户的ID,用户名,电子邮件,年龄和个人资料图片存储在Firebase数据库中时遇到了一些麻烦。

这是我想要的数据库结构:

MyAppReference
|
|___users
        |
        |_____UID                   
                |___username
                |___email
                |___age
                |­­­___profile_picture

当用户使用电子邮件和密码注册后生成用户ID(UID)时,我想将其保存为“用户”字段中用户的唯一标识符。然后在他们的UID中,我想存储他们的用户名,电子邮件,年龄和profile_picture。但是我不知道如何在同一段代码中创建父代(UID)和子代。

这是我目前的尝试:

function insertUserDetails() {

    var useremail = "[email protected]";
    var userpassword = document.getElementById("passwordfield").innerHTML;

    firebase.auth().createUserWithEmailAndPassword(useremail, userpassword).then(function(user) {
        console.log("User is authenticated, attempting to enter the user data now...");

        // Define variables for sending to database:
        var username = "JohnDoe";
        var userId = user.uid;
        var age = "50";
        var profile_picture = "http://zntent.com/wp-content/uploads/2016/03/will-ferrell-film.jpg";

        function writeUserData(userId, username, useremail, age, profile_picture) {

            // Attempting to create the parent "UID" (child of "users") here:
            function addStore(){
                var rootRef = firebase.database().ref();
                var storesRef = rootRef.child('MyAppReference/users');
                var newStoreRef = storesRef.push();
                newStoreRef.set({
                    "UID": userId,
                });
            }
            // Attempting to create/insert user data under that user's UID:                     
            firebase.database().ref('users/' + userId).set({
                username: username,
                email: email,
                age: age,
                profile_picture : profile_picture
            });
        }

    }, function(error) {
        // Handle Errors here.
        var errorCode = error.code;
        var errorMessage = error.message;
        Console.log("There was an error: " + errorCode + "." + errorMessage);
        // ...
    });
}

这是行不通的,但是在测试控制台时,我没有在控制台中收到任何错误。用户已通过正确的身份验证,其用户名和用户ID出现在Firebase控制台中,但是在数据库中没有任何痕迹。

这样做的正确方法是什么?我已经习惯了SQL,这是我第一次使用noSQL数据库,所以也许我的事情完全错了?

修复此问题的任何帮助将不胜感激。先感谢您!

阿尔内·雨果

我认为,只要您调用该writeUserData函数(已定义但从未调用过),它应该可以工作

您可以删除该addStore函数,因为users/${userId}将在写入该位置时创建该位置

下面是一个完整的示例。请注意,我删除了该writeUserData函数并仅内联了代码,并且还内联了要设置到数据库的变量。

function insertUserDetails() {

    var useremail = "[email protected]";
    var userpassword = document.getElementById("passwordfield").innerHTML;

    firebase.auth().createUserWithEmailAndPassword(useremail, userpassword).then(function(user) {
        console.log("User is authenticated, attempting to enter the user data now...");

        firebase.database().ref('users/' + userId).set({
            username: "JohnDoe",
            email: useremail,
            age: "50",
            profile_picture : "http://zntent.com/wp-content/uploads/2016/03/will-ferrell-film.jpg"
        });

    }, function(error) {
        // Handle Errors here.
        var errorCode = error.code;
        var errorMessage = error.message;
        Console.log("There was an error: " + errorCode + "." + errorMessage);
        // ...
    });
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何正确迁移未规范化且不一致的用户数据库

用户数据未保存到其数据库中

用户数据未添加到数据库中

限制Firebase Realtime数据库中的用户数

从数据库加载用户数据并将其传递到意向附加中的正确方法是什么

正确插入PhP和MySQL用户数据

PHP登录表单未插入用户数据

将会话用户数据插入CodeIgniter中的新数据库

Django auth ldap未更新用户数据库

从Firebase实时数据库中删除用户数据

删除firebase数据库中的用户数据不起作用

如何正确存储用户数据?

用户数据未使用Node API插入mongodb中

在Firebase中存储非用户数据的正确方法是什么?

Django未正确创建测试数据库

如何在 Firebase 中创建用户数据的子集?

单用户数据库与多用户数据库

将BACPAC文件导入到Azure中以创建新数据库,但是数据库级用户似乎未正确导入?

从Firebase数据库检索用户数据并显示在用户配置文件文本字段中

如何使用PHP SDK将来自Facebook Canvas的用户数据插入到使用SQL的数据库中

如何防止每次页面重新加载时将用户数据插入到数据库中?

使用用户数据和产品数据在Firebase上构建数据库

PHP:数据库中的内容未正确显示

如何绑定firebase数据库用户和用户数据

用户数据有一半没有插入数据库

将用户数据库连接保存在我的数据库中

加密用户数据及其数据库

在Firebase数据库中存储用户的正确方法

显示来自 firebase 数据库 (web) 的当前用户数据