Ошибка при загрузке изображения профиля: [firebase_storage/object-not-found] По нужной ссылке не существует объекта.Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка при загрузке изображения профиля: [firebase_storage/object-not-found] По нужной ссылке не существует объекта.

Сообщение Anonymous »

Привет всем, мне нужна помощь с этим. Я пытаюсь добавить изображение профиля для своих зарегистрированных пользователей и сохранить изображение профиля в Firebase:

Код: Выделить всё

imported files here

class ProfilePage extends StatefulWidget {
@override
_ProfilePageState createState() => _ProfilePageState();
}

class _ProfilePageState extends State
 {
final User? user = FirebaseAuth.instance.currentUser;
final FirebaseFirestore _firestore = FirebaseFirestore.instance;
File? _imageFile;
String? _profileImageUrl;

@override
void initState() {
super.initState();
_loadProfileImage();
}

Future _loadProfileImage() async {
if (user != null) {
DocumentSnapshot userDoc = await _firestore.collection('users').doc(user!.uid).get();
if (userDoc.exists && userDoc.data() != null) {
setState(() {
_profileImageUrl = userDoc['profilePic'];
});
}
}
}

Future _pickImage() async {
final pickedFile = await ImagePicker().getImage(source: ImageSource.gallery);
if (pickedFile != null) {
setState(() {
_imageFile = File(pickedFile.path);
});
_uploadImage(_imageFile!);
}
}

Future _uploadImage(File imageFile) async {
try {
String fileName = path.basename(imageFile.path);
Reference storageRef = FirebaseStorage.instance.ref().child('profile_pics/$fileName');
final UploadTask uploadTask = storageRef.putFile(imageFile);
final TaskSnapshot snapshot = await uploadTask.whenComplete(() => {});
final String downloadUrl = await snapshot.ref.getDownloadURL();

SharedPreferences prefs = await SharedPreferences.getInstance();
String? userId = prefs.getString('userId');

if (userId != null) {
await FirebaseFirestore.instance.collection('users').doc(userId).update({
'profilePic': downloadUrl,
});

setState(() {
_profileImageUrl = downloadUrl;
});

print('Profile picture uploaded successfully: $downloadUrl');
} else {
print('User ID not found in SharedPreferences');
}
} catch (e) {
print('Error uploading profile picture: $e');
}
}

Future _signOut(BuildContext context) async {
await FirebaseAuth.instance.signOut();
SharedPreferences prefs = await SharedPreferences.getInstance();
await prefs.remove('staySignedIn');
await prefs.remove('email');
await prefs.remove('password');
Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute(builder: (context) => LoginPage()),
(Route route) => false,
);
}

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(user?.displayName ?? 'Profile'),
actions: [
IconButton(
icon: Icon(Icons.logout),
onPressed: () => _signOut(context),
),
],
),
body: SingleChildScrollView(
child: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
children: [
GestureDetector(
onTap: _pickImage,
child: CircleAvatar(
radius: 50,
backgroundImage: _imageFile != null
? FileImage(_imageFile!)
: _profileImageUrl != null
? NetworkImage(_profileImageUrl!) as ImageProvider
: null,
child: _imageFile == null &&  _profileImageUrl == null
? Icon(Icons.add_a_photo, size: 50)
: null,
),
),
SizedBox(height: 20),
Text(
user?.displayName ?? 'No Name',
style: TextStyle(fontSize: 24, fontWeight: FontWeight.bold),
),
],
),
),
),
);
}
}
Похоже, что произошла ошибка, связанная с хранилищем Firebase, но только из-за этой страницы.
Если кто-нибудь может мне помочь с этим, я был бы очень рад
Я попробовал несколько вещей со своей коллекцией непосредственно в Firebase, чтобы проверить, действительно ли проблема возникла оттуда, но все сработало хорошо.
Я также попробовал другие методы, представленные в других сообщениях, но они не сработали. .

Подробнее здесь: https://stackoverflow.com/questions/786 ... o-object-e
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Firebase_storage object-not-found По нужной ссылке объект не существует
    Гость » » в форуме IOS
    0 Ответы
    60 Просмотры
    Последнее сообщение Гость
  • Firebase_storage object-not-found По нужной ссылке объект не существует
    Anonymous » » в форуме IOS
    0 Ответы
    38 Просмотры
    Последнее сообщение Anonymous
  • React Native Bar Found Pane Found не меняется на iOS
    Anonymous » » в форуме IOS
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • React Native Bar Found Pane Found не меняется на iOS
    Anonymous » » в форуме IOS
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • QtableWidget Cell Found Found Color имеет нежелательную «округлую прокладку»
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»