fix: 修复ProfilePage和AnalysisPage中的Supabase数据库调用\n\n- 将ProfilePage中的.from().select().eq()调用改为使用本地API的auth.getUser()和auth.updateUser()\n- 将AnalysisPage中的用户档案加载逻辑改为使用本地API\n- 确保所有Supabase调用都已迁移到本地API\n- 修复个人档案保存功能

This commit is contained in:
patdelphi
2025-08-18 09:53:04 +08:00
parent e806c216af
commit 9db422fb9a
3 changed files with 34 additions and 59 deletions

Binary file not shown.

View File

@@ -35,20 +35,17 @@ const AnalysisPage: React.FC = () => {
if (!user) return;
try {
const { data, error } = await supabase
.from('user_profiles')
.select('*')
.eq('user_id', user.id)
.maybeSingle();
if (data) {
setProfile(data);
const response = await supabase.auth.getUser();
if (response.data?.user) {
const userData = response.data.user;
setProfile(userData);
setFormData({
name: data.full_name || '',
birth_date: data.birth_date || '',
birth_time: data.birth_time || '',
gender: data.gender || 'male',
birth_place: data.birth_location || '',
name: userData.fullName || '',
birth_date: userData.birthDate || '',
birth_time: userData.birthTime || '',
gender: userData.gender || 'male',
birth_place: userData.birthPlace || '',
question: ''
});
}

View File

@@ -30,25 +30,18 @@ const ProfilePage: React.FC = () => {
if (!user) return;
try {
const { data, error } = await supabase
.from('user_profiles')
.select('*')
.eq('user_id', user.id)
.maybeSingle();
if (error && error.code !== 'PGRST116') {
throw error;
}
if (data) {
setProfile(data);
const response = await supabase.auth.getUser();
if (response.data?.user) {
const userData = response.data.user;
setProfile(userData);
setFormData({
full_name: data.full_name || '',
birth_date: data.birth_date || '',
birth_time: data.birth_time || '',
birth_location: data.birth_location || '',
gender: data.gender || 'male',
username: data.username || ''
full_name: userData.fullName || '',
birth_date: userData.birthDate || '',
birth_time: userData.birthTime || '',
birth_location: userData.birthPlace || '',
gender: userData.gender || 'male',
username: userData.email || ''
});
}
} catch (error: any) {
@@ -64,39 +57,24 @@ const ProfilePage: React.FC = () => {
setLoading(true);
try {
const profileData = {
user_id: user.id,
...formData,
updated_at: new Date().toISOString()
const updateData = {
fullName: formData.full_name,
birthDate: formData.birth_date,
birthTime: formData.birth_time,
birthPlace: formData.birth_location,
gender: formData.gender as 'male' | 'female'
};
let result;
if (profile) {
// 更新现有档案
result = await supabase
.from('user_profiles')
.update(profileData)
.eq('user_id', user.id)
.select()
.maybeSingle();
} else {
// 创建新档案
result = await supabase
.from('user_profiles')
.insert([{
...profileData,
created_at: new Date().toISOString()
}])
.select()
.maybeSingle();
const response = await supabase.auth.updateUser(updateData);
if (response.error) {
throw response.error;
}
if (result.error) {
throw result.error;
if (response.data?.user) {
setProfile(response.data.user);
toast.success('档案保存成功!');
}
setProfile(result.data);
toast.success('档案保存成功!');
} catch (error: any) {
console.error('保存档案失败:', error);
toast.error('保存档案失败:' + error.message);