小编You*_*ang的帖子

flutter - 自更新到 firebase 9.0.X 以来出现错误 event.snapshot.value

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 firebase-realtime-database flutter

5
推荐指数
1
解决办法
2344
查看次数

flutter - 当用户位于特定页面时不显示通知

我的应用程序有聊天功能。我已经实现了 Firebase 云消息传递和本地通知。

\n

因此,当有人向我发送消息时,会显示通知(一个位于 Android 状态栏内)和本地通知(一个位于屏幕上部,持续约 3 秒)。它们会在应用程序打开、在后台以及应用程序终止时出现。(到目前为止,一切都很好)

\n

但当我已经在与该人的聊天页面中时,我不希望同时显示这两个通知(1. fcm 通知,2. 本地通知)。我不知道从哪里开始。

\n

下面是我处理 fcm 并显示本地通知的代码。它们位于 main.dart 内部,主函数在返回我的根页面之前调用initializeFCM。

\n
Future<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)

notifications push-notification flutter

5
推荐指数
1
解决办法
3031
查看次数

如何配置套索回归以不惩罚某些变量?

我正在尝试在 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)

python scikit-learn

4
推荐指数
1
解决办法
1716
查看次数

调用 setState() 时 Flutter FutureBuilder 不更新

我有一个 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)

flutter flutter-futurebuilder

4
推荐指数
1
解决办法
3158
查看次数

react-native中的TextInput长度计数器

我的场景中有一个 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)

react-native

2
推荐指数
1
解决办法
3万
查看次数