Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';是否由于子引用错误而无法删除数据?_Javascript_Html_Firebase_Firebase Realtime Database - Fatal编程技术网

Javascript Can';是否由于子引用错误而无法删除数据?

Javascript Can';是否由于子引用错误而无法删除数据?,javascript,html,firebase,firebase-realtime-database,Javascript,Html,Firebase,Firebase Realtime Database,我有一个用户结构,可以在其中创建和更新用户,但由于某种字符串导致的引用子错误,我无法删除用户 基本上,我有一个由不同用户ID组成的实时数据库,然后是姓名、年龄和国籍 我希望能够尝试通过用户ID(例如usr5)删除用户,以便在输入时将用户从数据库中删除 有人能帮忙吗 错误: Reference.child failed: First argument was an invalid path = "[object HTMLInputElement]". Paths must be non-emp

我有一个用户结构,可以在其中创建和更新用户,但由于某种字符串导致的引用子错误,我无法删除用户

基本上,我有一个由不同用户ID组成的实时数据库,然后是姓名、年龄和国籍

我希望能够尝试通过用户ID(例如usr5)删除用户,以便在输入时将用户从数据库中删除

有人能帮忙吗

错误:

Reference.child failed: First argument was an invalid path = "[object HTMLInputElement]". Paths must be non-empty strings and can't contain ".", "#", "$", "[", or "]"
at fi (validation.ts:382)
at o.child (Reference.ts:90)
at removeUser ((fie path folders) index.html:115:58)
我的HTML:

<body>

    <div>
        <h4>Create User: </h4>

            <form>
                <label>Create User ID: </label><input type="text" id="usrID"/><br/>
                <label>First Name: </label><input type="text" id="usrFName"/><br/>
                <label>Age: </label><input type="number" id="usrAge"/><br/>
                <label>Nationality: </label>
                    <select id="usrNation">
                        <option value="American">American</option>
                        <option value="British">British</option>
                        <option value="French">French</option>
                    </select>
                <button id="createUserBtn">Create</button>              
            </form>
    </div>

    <div>
        <h4>Remove User: </h4>

            <form>
                <label>Create User ID: </label><input type="text" id="usrID"/><br/>
                <button id="removeUserBtn">Remove</button>              
            </form>
    </div>
<script>

var database = new Firebase("https://(my db url)/"),

    userdb = database.child("/users");

    userID = document.getElementById('usrID'),
    userFirstName = document.getElementById('usrFName'),
    userAge = document.getElementById('usrAge'),
    userNationality = document.getElementById('usrNation');


function createUser(userID, usrFName, usrAge, usrNation){
    firebase.database().ref('users/' + userID).set({
        usrFName: usrFName,
        usrAge: usrAge,
        usrNation: usrNation            
    });

    console.log('Success');
}

function insertAutoKey(usrFName, usrAge, usrNation){

    var newPost = {
        usrFName: usrFName,
        usrAge: usrAge,
        usrNation: usrNation
    };

    var newPostKey = firebase.database().ref().child('users').push().key;

    var updates = {};
    updates['/users/' + newPostKey] = newPost;
    return firebase.database().ref().update(updates);
}

document.getElementById('createUserBtn').addEventListener('click', function(){

    var usrID = userID.value,
        usrFName = userFirstName.value,
        usrAge = userAge.value,
        usrNation = userNationality.value;

    if(usrID && usrFName && usrAge && usrNation) {
        createUser(usrID, usrFName, usrAge, usrNation);
    }       
});

function removeUser(){
    var userRef = firebase.database().ref().child("users").child(userID);

    userRef.once('value', function(snapshot) {

        if (snapshot.val() === null) {
            alert("no user found");
        }else{
            userRef.remove();
        }
    });
    console.log('Remove Success');
}

document.getElementById('removeUserBtn').addEventListener('click', function(){
    removeUser();
});

创建用户:
创建用户ID:
名字:
年龄:
国籍: 美国人 英国的 法语 创造 删除用户: 创建用户ID:
去除

我的Firebase/Javascript:

<body>

    <div>
        <h4>Create User: </h4>

            <form>
                <label>Create User ID: </label><input type="text" id="usrID"/><br/>
                <label>First Name: </label><input type="text" id="usrFName"/><br/>
                <label>Age: </label><input type="number" id="usrAge"/><br/>
                <label>Nationality: </label>
                    <select id="usrNation">
                        <option value="American">American</option>
                        <option value="British">British</option>
                        <option value="French">French</option>
                    </select>
                <button id="createUserBtn">Create</button>              
            </form>
    </div>

    <div>
        <h4>Remove User: </h4>

            <form>
                <label>Create User ID: </label><input type="text" id="usrID"/><br/>
                <button id="removeUserBtn">Remove</button>              
            </form>
    </div>
<script>

var database = new Firebase("https://(my db url)/"),

    userdb = database.child("/users");

    userID = document.getElementById('usrID'),
    userFirstName = document.getElementById('usrFName'),
    userAge = document.getElementById('usrAge'),
    userNationality = document.getElementById('usrNation');


function createUser(userID, usrFName, usrAge, usrNation){
    firebase.database().ref('users/' + userID).set({
        usrFName: usrFName,
        usrAge: usrAge,
        usrNation: usrNation            
    });

    console.log('Success');
}

function insertAutoKey(usrFName, usrAge, usrNation){

    var newPost = {
        usrFName: usrFName,
        usrAge: usrAge,
        usrNation: usrNation
    };

    var newPostKey = firebase.database().ref().child('users').push().key;

    var updates = {};
    updates['/users/' + newPostKey] = newPost;
    return firebase.database().ref().update(updates);
}

document.getElementById('createUserBtn').addEventListener('click', function(){

    var usrID = userID.value,
        usrFName = userFirstName.value,
        usrAge = userAge.value,
        usrNation = userNationality.value;

    if(usrID && usrFName && usrAge && usrNation) {
        createUser(usrID, usrFName, usrAge, usrNation);
    }       
});

function removeUser(){
    var userRef = firebase.database().ref().child("users").child(userID);

    userRef.once('value', function(snapshot) {

        if (snapshot.val() === null) {
            alert("no user found");
        }else{
            userRef.remove();
        }
    });
    console.log('Remove Success');
}

document.getElementById('removeUserBtn').addEventListener('click', function(){
    removeUser();
});

var database=newfirebase(“https://(my db url)/”,
userdb=database.child(“/users”);
userID=document.getElementById('usrID'),
userFirstName=document.getElementById('usrFName'),
userAge=document.getElementById('usrAge'),
usernational=document.getElementById('usrNation');
函数createUser(userID、usrFName、usrAge、usrNation){
firebase.database().ref('users/'+userID).set({
usrFName:usrFName,
usrAge:usrAge,
用法:用法
});
console.log('Success');
}
函数插入自动键(usrFName、usrAge、usrNation){
var newPost={
usrFName:usrFName,
usrAge:usrAge,
用法:用法
};
var newPostKey=firebase.database().ref().child('users').push().key;
var更新={};
更新['/users/'+newPostKey]=newPost;
返回firebase.database().ref().update(更新);
}
document.getElementById('createUserBtn')。addEventListener('click',function(){
var usrID=userID.value,
usrFName=userFirstName.value,
usrAge=userAge.value,
usrNation=usernational.value;
if(usrID&&usrFName&&usrAge&&usrNation){
createUser(usrID、usrFName、usrAge、usrNation);
}       
});
函数removeUser(){
var userRef=firebase.database().ref().child(“用户”).child(用户ID);
userRef.once('value',函数(快照){
if(snapshot.val()==null){
警报(“未找到用户”);
}否则{
userRef.remove();
}
});
console.log('Remove Success');
}
document.getElementById('removeUserBtn')。addEventListener('click',function(){
removeUser();
});
更改此选项:

userID          = document.getElementById('usrID'),
userFirstName   = document.getElementById('usrFName'),
userAge         = document.getElementById('usrAge'),
userNationality = document.getElementById('usrNation');
为此:

userID          = document.getElementById('usrID').value;
userFirstName   = document.getElementById('usrFName').value;
userAge         = document.getElementById('usrAge').value;
userNationality = document.getElementById('usrNation').value;

您需要添加属性
value
来检索每个元素的值。

仍在检索相同的错误,但我已经在createUserBtn的createUserBtn
document.getElementById('createUserBtn').addEventListener('click',function()中定义了value属性{var usrID=userID.value,usrFName=userFirstName.value,usrAge=userAge.value,usrNation=usernational.value;if(usrID&&usrFName&&usrAge&&usrNation){createUser(usrID,usrFName,usrAge,usrNation);})
userID
在这里是一个局部变量。如果
createUser
正在工作,那么在添加
value
之后,函数
removeUser
也应该工作。因为现在根据错误,您在
子()中得到了一个html元素
用于输入用户id问题似乎出在删除而不是创建区域?createUser工作正常,但在removeUser上不工作