event.snapshot.value
自从更新到 firebase 9.0.5 以来,我遇到了错误。我有很多这样的函数,它们在 firebase 8.X 中运行良好。
Stream<List<MentorModel>> mentorStream() {
final stream = _database.onValue;
final Stream<List<MentorModel>> resultStream = stream.map((event) {
List<MentorModel> _mentorList = [];
Map<String, dynamic>.from(event.snapshot.value).forEach((key, value) => _mentorList.add(MentorModel.fromRTDB(key, value)));
return _mentorList;
});
return resultStream;
}
Run Code Online (Sandbox Code Playgroud)
现在我有错误标记event.snapshot.value
,并且 android studio 说
Error: The argument type 'Object?' can't be assigned to the parameter type 'Map<dynamic, dynamic>'.
- 'Object' is from 'dart:core'.
- 'Map' is from 'dart:core'.
Map<String, dynamic>.from(event.snapshot.value).forEach((key, value) => _mentorList.add(MentorModel.fromRTDB(key, value)));
Run Code Online (Sandbox Code Playgroud)
当我尝试时
Map<String, dynamic>.from(event.snapshot.value as Map<String, dynamic>).forEach((key, value) …
Run Code Online (Sandbox Code Playgroud) 我的应用程序有聊天功能。我已经实现了 Firebase 云消息传递和本地通知。
\n因此,当有人向我发送消息时,会显示通知(一个位于 Android 状态栏内)和本地通知(一个位于屏幕上部,持续约 3 秒)。它们会在应用程序打开、在后台以及应用程序终止时出现。(到目前为止,一切都很好)
\n但当我已经在与该人的聊天页面中时,我不希望同时显示这两个通知(1. fcm 通知,2. 本地通知)。我不知道从哪里开始。
\n下面是我处理 fcm 并显示本地通知的代码。它们位于 main.dart 内部,主函数在返回我的根页面之前调用initializeFCM。
\nFuture<void> initializeFCM() async {\n await Firebase.initializeApp();\n\n FirebaseMessaging messaging = FirebaseMessaging.instance;\n\n // Firebase Messaging\n NotificationSettings settings = await messaging.requestPermission(\n alert: true,\n announcement: false,\n badge: true,\n carPlay: false,\n criticalAlert: false,\n provisional: false,\n sound: true,\n );\n\n if (settings.authorizationStatus == AuthorizationStatus.authorized) {\n // print('User granted permission');\n } else\n if (settings.authorizationStatus == AuthorizationStatus.provisional) {\n // print('User granted provisional permission');\n } else {\n // print('User …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在 python 中使用套索回归。我目前在 scikit-learn 库中使用套索功能。
我希望我的模型在训练时不要惩罚某些变量。(仅惩罚其余变量)
以下是我当前的训练代码
rg_mdt = linear_model.LassoCV(alphas=np.array(10**np.linspace(0, -4, 100)), fit_intercept=True, normalize=True, cv=10)
rg_mdt.fit(df_mdt_rgmt.loc[df_mdt_rgmt.CLUSTER_ID == k].drop(['RESPONSE', 'CLUSTER_ID'], axis=1), df_mdt_rgmt.loc[df_mdt_rgmt.CLUSTER_ID == k, 'RESPONSE'])
Run Code Online (Sandbox Code Playgroud)
df_mdt_rgmt 是数据集市,我试图将某些列的系数保持为非零。
R 中的 glmnet 提供了让我这样做的“惩罚因子”参数,但是我如何在 python scikit-learn 中做到这一点?
下面是我在 R 中的代码
get.Lassomodel <- function(TB.EXP, TB.RSP){
VT.PEN <- rep(1, ncol(TB.EXP))
VT.PEN[which(colnames(TB.EXP) == "DC_RATE")] <- 0
VT.PEN[which(colnames(TB.EXP) == "FR_PRICE_PW_REP")] <- 0
VT.GRID <- 10^seq(0, -4, length=100)
REG.MOD <- cv.glmnet(as.matrix(TB.EXP), as.matrix(TB.RSP), alpha=1,
lambda=VT.GRID, penalty.factor=VT.PEN, nfolds=10, intercept=TRUE)
return(REG.MOD)
}
Run Code Online (Sandbox Code Playgroud) 我有一个 DataProvider 和一个 FutureBuilder。
class _UserHeaderState extends State<UserHeader> {
@override
Widget build(BuildContext context) {
var _dataProvider = context.watch<DataProvider>();
var _userProfile = _dataProvider.getUserProfile();
return FutureBuilder<UserProfile>(
future: _userProfile,
builder: (context, snapshot) {
...
Run Code Online (Sandbox Code Playgroud)
我的 DataProvider.photoURL 有配置文件 URL,DataProvider.updatePhotoURL() 会更新它。DataProvider.getUserProfile() 返回 UserProfile 类,UserProfile.name 是用户名等等。
我制作了一个按钮来使用 imagepicker 更新个人资料图像。在 onPressed 中,我包装了 DataProvider.updatePhotoURL(); 和 _userProfile = DataProvider.getUserProfile(); 与 setState.
所需的输出是,当用户从图像选择器中选择照片时,我的 CircleAvatar 应立即显示新选择的照片。
实际输出是 CircleAvatar 显示旧照片,直到我点击热重载或访问另一个页面并返回。
似乎 setState() 和 FutureBuilder 快照的组合搞砸了,但不知道如何修复它。
完整代码如下。(不包括 DataProvider 和 UserProfile 类)
class UserHeader extends StatefulWidget {
@override
_UserHeaderState createState() => _UserHeaderState(); …
Run Code Online (Sandbox Code Playgroud) 我的场景中有一个 maxLength 为 100 的 TextInput,我想在下面添加一个计数器,显示类似“38/100”的内容,使用“onChangeText”自动更新。
所以我必须弄清楚输入值的长度,以某种方式将它存储在 this.state.textLength 中,同时将值本身存储到 this.state.text,但我不知道如何在“onChangeText = {(文本) => ...}" 函数。
这是我的简化代码:
export class RequestScene extends Component {
constructor() {
super();
this.state={
text: '',
textLength: 0,
category: '',
time: ''
};
}
render(){
return(
<View style={{
flex: 1,
flexDirection: 'column',
justifyContent: 'center',
alignItems: 'center'
}}>
<View style={{
height: 200
}}>
<TextInput style={{
height: 200,
width: 360,
borderColor: 'lightgray',
borderWidth: 1,
padding: 3,
borderRadius: 3,
fontSize: 24}}
maxLength={100}
placeholder='?? ???? ???? ????'
multiline={true}
// this is where …
Run Code Online (Sandbox Code Playgroud)