Javascript 添加用户后如何修复Firebase DB列获取随机数?
当我通过js添加一个新用户时,它会在Admins列下面生成一个随机数。我需要像以前一样解决这个问题。它必须是用户名的值。如果你们中有人知道如何根据我的需要修复此代码,请告诉我:) 谢谢 这是HTML、JS和JSON代码Javascript 添加用户后如何修复Firebase DB列获取随机数?,javascript,html,json,firebase,firebase-realtime-database,Javascript,Html,Json,Firebase,Firebase Realtime Database,当我通过js添加一个新用户时,它会在Admins列下面生成一个随机数。我需要像以前一样解决这个问题。它必须是用户名的值。如果你们中有人知道如何根据我的需要修复此代码,请告诉我:) 谢谢 这是HTML、JS和JSON代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Firebase CRUD Javascript</title>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Firebase CRUD Javascript</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<h1>Firebase CRUD with Javascript
<br/><small><em>User App</em></small>
</h1>
<!-- add user module -->
<section id="add-user-module" >
<button id="open-add-user-form-btn">+</button>
<form>
<h2>Add User</h2>
name:<br>
<input type='text' data-key='name' class='user-input'><br>
username:<br>
<input type='text' data-key='username' class='user-input'><br>
password:<br>
<input type='text' data-key='password' class='user-input'><br>
<button type='button' id="add-user-btn">add user</button>
</form>
</section>
<!-- edit user module -->
<section id="edit-user-module">
<form>
<h2>Edit user</h2>
<input type="hidden" class="edit-userid">
name:<br>
<input type='text' data-key='name' class='edit-user-input'><br>
username:<br>
<input type='text' data-key='username' class='edit-user-input'><br>
password:<br>
<input type='text' data-key='password' class='edit-user-input'><br>
<button type='button' id="edit-user-btn">save</button>
</form>
</section>
<!-- show user module -->
<ul id="user-list"></ul>
<div id="user-detail"></div>
<script src="https://www.gstatic.com/firebasejs/7.10.0/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.10.0/firebase-analytics.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.10.0/firebase-database.js"></script>
<script type="text/javascript" src="app.js"></script>
</body>
</html>
您应该在addUserBtnClicked
函数中使用“set”而不是“push”
就像这样:
function addUserBtnClicked() {
const usersRef = dbRef.child('Admins');
const addUserInputsUI = document.getElementsByClassName("user-input");
// this object will hold the new user information
let newUser = {};
// loop through View to get the data for the model
for (let i = 0, len = addUserInputsUI.length; i < len; i++) {
let key = addUserInputsUI[i].getAttribute('data-key');
let value = addUserInputsUI[i].value;
newUser[key] = value;
}
usersRef.child(userID).set(newUser) //enter the userID here
}
函数addUserBtnClicked(){
const usersRef=dbRef.child('Admins');
const addUserInputsUI=document.getElementsByClassName(“用户输入”);
//此对象将保存新用户信息
让newUser={};
//循环查看以获取模型的数据
for(设i=0,len=addUserInputsUI.length;i
我将userID更改为username,因为username的值是我想要得到的随机数。但它不起作用@Tobias你有什么错误吗?是的,userID应该是您需要的任何内容,我不知道确切的字段是的,这是错误mate@Tobias-Uncaught ReferenceError:username没有在HTMLButtonElement.addUserBtnClickedYeah中定义,因为变量“username”不是由函数设置的。但是在数据库中,你有一个你设置的字段用户名(data key=name),我猜,这个值你在我的代码中作为“userID”放的对不起,我不能理解。你的意思是我需要在两个地方都输入用户名吗?
{
"Admins": [
{
"name": "Kuruppu",
"username": 117,
"password": "kuruppu123"
},
{
"name": "Sandeepa",
"username": 118,
"password": "sandeepa123"
},
{
"name": "Lakshan",
"username": 119,
"password": "lakshan123"
}
]
}
function addUserBtnClicked() {
const usersRef = dbRef.child('Admins');
const addUserInputsUI = document.getElementsByClassName("user-input");
// this object will hold the new user information
let newUser = {};
// loop through View to get the data for the model
for (let i = 0, len = addUserInputsUI.length; i < len; i++) {
let key = addUserInputsUI[i].getAttribute('data-key');
let value = addUserInputsUI[i].value;
newUser[key] = value;
}
usersRef.child(userID).set(newUser) //enter the userID here
}