firebase - 마이페이지 이름 변경하기
import { updateProfile } from "firebase/auth";
import { collection, getDocs, query, where } from "firebase/firestore";
import React, { useEffect, useState } from "react";
import { useNavigate } from "react-router-dom";
import { auth, dbService } from "./firebase";
const Profile = ({ userObj }) => {
const navigate = useNavigate();
const [newDisplayName, setNewDisplayName] = useState(userObj.displayName);
const onLogOutClick = () => {
auth.signOut();
navigate("/");
};
const getMyNweets = async () => {
const q = query(
collection(dbService, "nweets"),
where("creatorId", "==", userObj.uid)
);
const querySnapsot = await getDocs(q);
querySnapsot.forEach((doc) => {
console.log(doc.id, "=>", doc.data());
});
};
useEffect(() => {
getMyNweets();
}, []);
const onChange = (e) => {
setNewDisplayName(e.target.value);
};
const onSubmit = async (e) => {
e.preventDefault();
if (userObj.displayName !== newDisplayName) {
await updateProfile(userObj, { displayName: newDisplayName });
}
};
return (
<div>
<form onSubmit={onSubmit}>
<input
type="text"
placeholder="Display name"
value={newDisplayName}
onChange={onChange}
/>
<input type="submit" value="Update Profile" />
</form>
<button onClick={onLogOutClick}>Log out</button>
</div>
);
};
export default Profile;