小编Sha*_*rim的帖子

无法解析片段中的 ViewModelProvider 构造?

我花了很多时间试图弄清楚为什么在下面的代码中(接近结尾),我在 ViewModelProvider(this) 上遇到错误。我也试过 getActivity() 而不是 'this',同样的问题。我得到的错误是“无法解析构造函数......”


import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;



public class ItemSetupFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_setup, container, false);

        return view;
    }

    @Override
    public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

        ItemSetupFragmentModel model = new ViewModelProvider(this).get(ItemSetupFragmentModel.class);
        model.getKids().observe(this, users -> {
            // update UI
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

显示 Android Studio 中编译错误的图像

android android-mvvm android-livedata android-architecture-components

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

如何验证Android Google使用Node服务器登录

我正在尝试在我的Android应用上实施Google帐户登录,并在我的节点服务器中对其进行身份验证.

我按照本教程成功实现了Android上的Google登录按钮,但我知道我不知道如何在后端进行身份验证.

从这个文件我假设我需要得到并发送getIdToken()getServerAuthCode()但我不知道我应该发送哪一个,所以投票发送getServerAuthCode().

在我的节点服务器部分,我安装了这个并使用了这个方法:

var google = require('googleapis'); 
var plus = google.plus('v1'); 
var OAuth2 = google.auth.OAuth2; 
var oauth2Client = new OAuth2(CLIENT_ID, CLIENT_SECRET, REDIRECT_URL);

// Retrieve tokens via token exchange explained above or set them:
oauth2Client.setCredentials({   
  access_token: 'ACCESS TOKEN HERE',  
  refresh_token: 'REFRESH TOKEN HERE' 
});

plus.people.get({ 
userId: 'me', 
auth: oauth2Client }, 
function(err,response) {   // handle err and response });
Run Code Online (Sandbox Code Playgroud)

我认为这是正确的方法,但后来我发现了这一点,我意识到返回的数据getServerAuthCode()需要交换真实访问令牌才能从用户那里获取信息.

我的问题是:

1)我应该从Android向Node发送哪些数据?(在Node上我得到一些基本信息,如电子邮件和用户名).

2)如果我发送正确的数据,我用于Node的库是正确的吗?如果我没有发送正确的数据,你建议我验证哪个库getIdToken(). …

authentication android google-account node.js google-signin

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

在没有互联网连接的情况下进入应用程序后,facebook 或 instagram 应用程序如何保留图像或数据?

例如,在 Facebook 应用程序中,我使用互联网连接登录。然后我关闭应用程序,关闭互联网并关闭我所有的系统选项卡。然后即使我的互联网连接关闭,我看到之前加载的图像和数据仍然保留。

Facebook 应用程序如何做到这一点?如果想在我的 Android 应用程序中实现这样的功能,我该怎么办?

android offline-caching

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

使用过滤器仅返回键的特定属性

我有一个数组对象,在该数组对象中,我需要根据isVerfied属性过滤并创建一个数组。

如果isVerfied属性为真,我只需要推送对象的 name 属性而不是将整个对象推送到数组中

我试过这个,但它似乎没有工作,因为它正在推动整个对象。

const users = [
   {
         name: 'Varun', 
         age: '18', 
         isVerfied: 'true'
   }, 
   {
         name: 'Rahul', 
         age: '12', 
   }
]
 
const verfiedUserNameNew = users.filter(user => {
     if (user.isVerfied) return user.name
})

console.log(verfiedUserNameNew) 
Run Code Online (Sandbox Code Playgroud)

我也试过地图

const users = [
  {
        name: 'Varun', 
        age: '18', 
        isVerfied: 'true'
  }, 
  {
        name: 'Rahul', 
        age: '12', 
  },
]
         
const verfiedUserNameNew = users.map(user => {
  if (user.isVerfied) return user.name
})

console.log(verfiedUserNameNew)
Run Code Online (Sandbox Code Playgroud)

但随后它返回 varun 和 undefined。我知道另一种解决方案是创建一个数组并运行一个 for.Each 循环,在该循环中放置一个 if 条件,然后将元素推入一个数组中 …

javascript arrays functional-programming

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

如何优化云 Firestore 中的读写操作?

我目前正在编写一个用于学习目的的 react + Firebase 项目,我想知道我应该采用哪种方法来有效地读取 Firebase。

假设我有一个名为 product 的只读集合,其中包含大约 5000 个文档,因此当用户访问我的 react 应用程序时,每次访问将收取 5000 次读取费用。

来源:Cloud Firestore:读取是如何计算的?

由于如果用户垃圾邮件刷新以响应应用程序,这会相当快地消耗读取计数,是否有任何正确的方法可以从 firebase firestore 读取数据?

  1. 将产品信息存储在 localstorage 中

    • 一旦 react app 成功加载数据,继续将产品信息保存到 localstorage 中,以避免将来不必要的加载。
  2. 使用来自 firebase 的 SOURCE.CACHE

  3. 限制读取查询?

    • 限制每次加载的固定数量的文档返回,但在一天结束时,我仍然必须加载完整的文档集,因此我对此持怀疑态度。

这是我目前能想到的,如果您的应用程序构建设计中有任何黄金标准或程序,请告诉我。

谢谢你。

firebase reactjs google-cloud-firestore

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

Flutter pushReplacementNamed().then() 不触发

我正在关注关于flutter的udemy课程(https://www.udemy.com/learn-flutter-dart-to-build-ios-android-apps),并使用scoped_model进行状态管理。我想从产品列表中编辑产品。为此,我将产品 ID 设置为标志 - 范围模型中的 selectedProductId。提交时,我想导航离开并将此 selectedProductId 设置为 null。

//method to edit product    
editProduct(productId, newValues);
Navigator.pushReplacementNamed(context, '/productsPage').then((_){
   debugger();
setSelectedProductId(null);
}).catchError((err){print(err);});
Run Code Online (Sandbox Code Playgroud)

调试器永远不会被命中。并且也没有错误。

我尝试使用异步等待,但仍然没有用。

editProduct(editableProductId, _formData);
await Navigator.pushReplacementNamed(context, '/productsPage').catchError((err){print(err);});
debugger();
setSelectedProductId(null);
Run Code Online (Sandbox Code Playgroud)

页面被导航到给定的路线,但后面的行永远不会执行。我什至尝试使用pushNamed而不是pushReplacementNamed.

我知道pushReplacementNamed返回一个未来,所以必须调用 .then(),但似乎没有发生,我错过了什么吗?还有其他我应该了解的因素或情况吗?

dart flutter

0
推荐指数
1
解决办法
3718
查看次数