我最近了解了有关开发应用程序的知识,并且很难将Firestore用户帐户添加到任务应用程序中,我使用flutter和flutter_chips_input plugins。有解决这个问题的例子吗?
ChipsInput(
initialValue: [
AppProfile('John Doe', 'jdoe@flutter.io', 'https://d2gg9evh47fn9z.cloudfront.net/800px_COLOURBOX4057996.jpg')
],
decoration: InputDecoration(
labelText: "Select People",
),
maxChips: 3,
findSuggestions: (String query) {
if (query.length != 0) {
var lowercaseQuery = query.toLowerCase();
return mockResults.where((profile) {
return profile.name.toLowerCase().contains(query.toLowerCase()) || profile.email.toLowerCase().contains(query.toLowerCase());
}).toList(growable: false)
..sort((a, b) => a.name
.toLowerCase()
.indexOf(lowercaseQuery)
.compareTo(b.name.toLowerCase().indexOf(lowercaseQuery)));
} else {
return const <AppProfile>[];
}
},
onChanged: (data) {
print(data);
},
chipBuilder: (context, state, profile) {
return InputChip(
key: ObjectKey(profile),
label: Text(profile.name),
avatar: CircleAvatar(
backgroundImage: NetworkImage(profile.imageUrl),
),
onDeleted: () => state.deleteChip(profile),
materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
);
},
suggestionBuilder: (context, state, profile) {
return ListTile(
key: ObjectKey(profile),
leading: CircleAvatar(
backgroundImage: NetworkImage(profile.imageUrl),
),
title: Text(profile.name),
subtitle: Text(profile.email),
onTap: () => state.selectSuggestion(profile),
);
},
)
答案 0 :(得分:0)
在产品中实施Firebase时,请注意您正在编写客户端代码。您编写的代码将在单个用户设备上运行。获取所有用户不应在用户端实现。因此,您无法直接在应用中获取授权用户。
Cloud Functions可以实现。您可以将Javascript或Typescript代码部署到云中,以在后端具有动态行为。您可以使用Auth Triggers并跟踪数据库中的用户。例如,您可以将回调函数附加到onCreate()
。它将在以下情况下触发:
和一个UserRecord
对象。然后,您通常可以在users
集合或类似集合中将所需的信息保存到Firestore中。现在,您的Firestore数据库中已有用户,您可以在应用程序中使用它们,并且当然要正确配置security rules。您可以全部获取它们,获取特殊用户或具有查询的用户,等等。