我只是制作简单的输入代码,它适用于userId
。但是,如果我使用.child(userId)
,我可以从孩子那里读取我的数据。在我将它放在child()
之前,我尝试转换为字符串,但仍然无法工作。如果我使用userId
这样的.child('iOtzRxxxxxxxxxxxxxxx')
,它就会有用。如果我使用.child(userId)
,它会给我这样的错误:错误:Reference.child失败:第一个参数是无效路径="未定义"。路径必须是非空字符串,并且不能包含"。","#"," $"," [& #34;,或"]"。
如果我可以使用.child(userId)
输入数据,我如何从.child(userId)
读取数据?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Signin Template for Bootstrap</title>
<link rel="stylesheet" href="css/bootstrap.min.css">
<script src="https://www.gstatic.com/firebasejs/4.11.0/firebase.js"></script>
<script src="core.js"></script>
</head>
<body>
<div class="container">
<input type="text" id="masukan">
<button class="btn btn-primary small" id="input">Input Data</button>
<button class="btn btn-danger small" id="keluar">Signout</button>
<button class="btn btn-success small" id="fresh_uid">Fres UID</button>
<h1 id="userss"></h1>
<h1 id="user_uid"></h1>
<pre id="json"></pre>
</div>
<script>
var txtinput = document.getElementById('masukan');
var inputRed = firebase.database().ref('users');
var user_id; //User uid from onAuthStateChanged
//Input value
document.getElementById('input').addEventListener('click', e =>{
inputRed.child(user_id).push({username: txtinput.value});
});
//Read data
//inputRed.child('USER_UID_STRING').on('child_added', function(snapshot){
inputRed.child(user_id).on('child_added', function(snapshot){
document.getElementById('userss').innerText = snapshot.val().username;
});
//Read UID
document.getElementById('fresh_uid').addEventListener('click', function(e){
document.getElementById('user_uid').innerText = user_id;
});
//Sign Out
document.getElementById('keluar').addEventListener('click', e =>{
firebase.auth().signOut();
});
//Read current user
firebase.auth().onAuthStateChanged(firebaseUser =>{
if(firebaseUser){
var namaLengkap = firebaseUser.displayName;
//document.getElementById('json').textContent = JSON.stringify(firebaseUser, null, ' ');
user_id = firebaseUser.uid;
}
});
</script>
<script src="js/jquery-3.3.1.min.js"></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>
&#13;
答案 0 :(得分:0)
你的问题非常混乱,我根本没有得到它。但是看一下你的代码 - 你在user_id
中设置了:{/ p>
firebase.auth().onAuthStateChanged(firebaseUser =>{
if(firebaseUser){
var namaLengkap = firebaseUser.displayName;
//document.getElementById('json').textContent = JSON.stringify(firebaseUser, null, ' ');
user_id = firebaseUser.uid;
}
});
这是你在脚本中做的最后一件事。而且它是有条件的。但是你以前多次使用user_id
。因此,每次使用user_id
时,例如:
document.getElementById('input').addEventListener('click', e =>{
inputRed.child(user_id).push({username: txtinput.value});
});
user_id
评估为undefined
。它没有价值。