gpt4 book ai didi

firebase - 在Cloud Firestore中更新用户数据

转载 作者:行者123 更新时间:2023-12-03 04:46:13 26 4
gpt4 key购买 nike

我在尝试从已登录用户更新数据时遇到问题。我有uid,但uid和用户集合之间必须有连接,以便程序选择合适的用户进行更新,但我不知道该如何进行。

这是我所拥有的:

FirebaseUser loggedInUser;
final _firestore = Firestore.instance;
//
double _latitude;
double _longitude;

void getCurrentLocation() async {
try {
Position position = await Geolocator()
.getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
setState(() {
_latitude = position.latitude;
_longitude = position.longitude;
});
_firestore
.collection('users')
.document('${loggedInUser.uid}')
.updateData({'location': GeoPoint(_latitude, _longitude)});
} catch (e) {
print(e);
}
}

这是我得到的:
E/flutter ( 9187): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: PlatformException(Error performing updateData, NOT_FOUND: No document to update: projects/app-#####/databases/(default)/documents/users/CGyByl58ELc0zirlVjJpv5OWAc42, null)

因此它使用的是正确的uid(“CGyByl58ELc0zirlVjJpv5OWAc42”)

这是Firebase的 身份验证标签的屏幕截图:
enter image description here

但是我想要获取的是该用户在数据库中的集合的名称:
enter image description here

最佳答案

用户ID与文档ID不同,这就是为什么出现该错误的原因,因为userId不存在任何文档。您需要使用userId作为文档ID:

void addUser() async{
var firebaseUser = await FirebaseAuth.instance.currentUser();
Firestore.instance.collection("users").document(firebaseUser.uid).setData(
{
"age" : 38,
}).then((_){
print("success!");
});
}

现在,您将使用 userId作为文档ID,并且可以使用 userId更新文档

关于firebase - 在Cloud Firestore中更新用户数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62244722/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com