我真的厌倦了这个firebase网络应用程序。简而言之,我不能在firebasedatabase上写任何依赖于“USER ID /(user.uid)”的数据。下面的代码段不起作用。怎么了?
我收到此错误; “未捕获的ReferenceError:未定义用户 在index.html:206 (匿名)@ index.html:206
<script>
var config = {
apiKey:
authDomain:
databaseURL:
projectId:
storageBucket:
messagingSenderId:
};
firebase.initializeApp(config);
initApp = function () {
firebase.auth().onAuthStateChanged(function (user) {
if (user) {
// User is signed in.
var email = user.email;
var uid = user.uid;
var providerData = user.providerData;
user.getIdToken().then(function (accessToken) {
document.getElementById('LogOut').textContent = 'Log out';
var DT = JSON.stringify({
displayName: displayName,
email: email,
emailVerified: emailVerified,
phoneNumber: phoneNumber,
photoURL: photoURL,
uid: uid,
accessToken: accessToken,
providerData: providerData
}, null, ' ');
console.log(DT);
});
} else {
// User is signed out.
document.getElementById('LogOut').textContent = 'Log in';
}
}, function (error) {
console.log(error);
});
};
function signOut() {
firebase.auth().signOut();
}
document.getElementById("LogOut").addEventListener("click", signOut);
window.addEventListener('load', function () {
initApp()
});
var userId = user.uid;
var email = user.email;
function writeUserData(userId, email) {
firebase.database().ref('users/' + userId).set({
username: userId,
email: user.email
});
}
document.getElementById("submitBtn").addEventListener("click", writeUserData);
</script>
答案 0 :(得分:0)
您尝试在未定义user
变量的地方使用user
变量。 onAuthStateChanged
变量仅在user
回调中可用。这意味着您应该将需要initApp = function () {
firebase.auth().onAuthStateChanged(function (user) {
if (user) {
// User is signed in.
var email = user.email;
var uid = user.uid;
firebase.database().ref('users/' + uid).set({
username: uid,
email: user.email
});
var providerData = user.providerData;
user.getIdToken().then(function (accessToken) {
document.getElementById('LogOut').textContent = 'Log out';
var DT = JSON.stringify({
displayName: displayName,
email: email,
emailVerified: emailVerified,
phoneNumber: phoneNumber,
photoURL: photoURL,
uid: uid,
accessToken: accessToken,
providerData: providerData
}, null, ' ');
console.log(DT);
});
} else {
// User is signed out.
document.getElementById('LogOut').textContent = 'Log in';
}
}, function (error) {
console.log(error);
});
};
变量的所有代码移动到回调中:
var userId = user.uid;
var email = user.email;
function writeUserData(userId, email) {
firebase.database().ref('users/' + userId).set({
username: userId,
email: user.email
});
}
此时,请删除此代码:
m = [[45, 35, 52, 75], [25, 30, 65 ], [50, 43, 32, 22 ]]