我的应用程序上有个人资料图片“系统”。但是当我上传图片时,它可以工作。但是当我从其他帐户上传图片时,它不起作用。当我从旧帐户中删除数据库文件并在当前帐户上从新帐户中尝试时,它可以工作。
我认为问题在于,当我上传新图片时,文档名称相同。但我不知道。
这是我的添加图片代码:
addProfilePic(user, context) {
FirebaseFirestore.instance.collection('/profilbild').add({
'uid': FirebaseAuth.instance.currentUser.uid,
'photoUrl': photoUrl,
}).then((value) {
//Navigator.of(context).pop();
//Navigator.of(context).pushReplacementNamed('/selectpic');
}).catchError((e) {
print(e);
});
这就是我的更改个人资料图片代码:
Future updateProfilePic(picUrl) async {
var userInfo = new UserUpdateInfo();
await FirebaseAuth.instance.currentUser
.updateProfile(photoURL: picUrl)
.then((val) {
getUserCurrent().then((user) {
FirebaseFirestore.instance
.collection('/profilbild')
.where('uid', isEqualTo: FirebaseAuth.instance.currentUser.uid)
.get()
.then((QuerySnapshot querySnapshot) => {
querySnapshot.docs.forEach((doc) {
FirebaseFirestore.instance
.doc('/profilbild/$doc')
.set({'photoUrl': picUrl}).then((val) {
print('Profilbild aktualisiert');
});
})
});
我的代码首先使用 uid 和 Profil Picture = null 在数据库中添加文档。之后,我用我的代码将配置文件图片更改为存储链接。
当我只添加图片(代码:addProfilePic)时,数据库会生成以下文档:
当我更新图片(代码:updateProfilPic)时,出现了以下内容:(看看文件的名称!)
当我想从其他帐户添加个人资料图片时,我会添加个人资料图片(代码:addProfilePic)而不是它的工作原理。它制作了如图 1 所示的文档。
在我想更新图片(代码:updateProfilePic)之后它不起作用。文件和以前一样。(如图 1 所示)没有增加,也没有改变。
我该如何解决?