我有一个创建用户和登录验证设置firebase实时数据库。我有一个user
字段在我的数据库中,我将在那里存储用户数据。但是,我想在user
字段下创建一个子元素,它是用户id,然后用户信息可以显示在该子元素下。到目前为止,我已经尝试创建这样一个字段:
import { initializeApp } from "https://www.gstatic.com/firebasejs/9.13.0/firebase-app.js";
import { getDatabase, set, ref, update } from "https://www.gstatic.com/firebasejs/9.13.0/firebase-database.js";
import { getAuth, createUserWithEmailAndPassword, signInWithEmailAndPassword, onAuthStateChanged, signOut} from "https://www.gstatic.com/firebasejs/9.13.0/firebase-auth.js";
//Signup section
signup.addEventListener('click',(e) => {
var username = document.getElementById('signup-user').value;
var email = document.getElementById('signup-email').value;
var schoolID = document.getElementById('signup-id').value;
var password = document.getElementById('signup-pwd').value;
createUserWithEmailAndPassword(auth, email, password, schoolID)
.then((userCredential) => {
// Signed in
const user = userCredential.user;
update(ref(database, "user/" +user.id),{
username: username,
schoolID: schoolID,
email: email
})
alert('User Created!');
// ...
})
.catch((error) => {
const errorCode = error.code;
const errorMessage = error.message;
alert('Error please try again');
// ..
});
});
但它只在我的实时数据库中提供了一个未定义的字段:
不仅如此,每次创建新用户时,它都会覆盖以前的条目。
1条答案
按热度按时间envsm3lx1#
userCredential.user
是一个User类型的对象,它是UserInfo的子类。正如你从链接的API文档中看到的,User没有一个名为id
的属性。它总是未定义的。您需要的是uid。