当前位置: 首页 > 知识库问答 >
问题:

Firebase的onCompletion捆绑包不发送…?

轩辕海
2023-03-14

问题是:我的Firebase从一个正常工作的文档获取信息(log.d和Toast显示它正确获取信息)

    public void getUserInfo(String id)
{
    DocumentReference docRef = db.collection("users").document(id);
    docRef.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
        @Override
        public void onComplete(@NonNull Task<DocumentSnapshot> task) {
            if (task.isSuccessful()) {
                DocumentSnapshot document = task.getResult();
                if (document.exists()) {
                    Log.d(TAG, "DocumentSnapshot data: " + document.getData());
                    Toast.makeText(ConnexionActivity.this, "DocumentSnapshot data: " + document.getData(),
                            Toast.LENGTH_SHORT).show();

                    Intent intent = new Intent(ConnexionActivity.this,GameMenu.class);
                    Bundle bundle = new Bundle();
                    bundle.putString("USERID", document.getId());
                    bundle.putString("USERNAME", document.get("lastname").toString() + " " + document.get("firstname").toString());
                    bundle.putString("SCORE", document.get("score").toString());
                    intent.putExtras(bundle);
                    startActivity(intent);
                } else {
                    Log.d(TAG, "No such document");
                }
            } else {
                Log.d(TAG, "get failed with ", task.getException());
            }
        }
    });
}

但是,在创建GameMenu activity时,包(savedInstanceState)为空,并且尝试获取该信息会给我带来异常。

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_game_menu);
    ((TextView)findViewById(R.id.usernameView)).setText(savedInstanceState.getString("USERNAME"));
    ((TextView)findViewById(R.id.scoreView)).setText(savedInstanceState.getString("SCORE"));
}

非常感谢快速的帮助,我们在这里有点慌乱:(

共有1个答案

邢修明
2023-03-14

看来SavedInstanceState返回Null。不是专家,但这对我有用:

// Add intent and bundle to your class
private Intent;
private Bundle;
// Initialize them in your onCreate method
intent = getIntent();
bundle = intent.getExtras();
// And get your data using bundle
bundle.getString("KEY")

希望能解决您的问题:)

 类似资料:
  • 问题内容: 命令: 异常(来自日志文件) 但是以下jar可用。 关于上述错误有什么建议吗? 问题答案: 您需要安装几个捆绑软件才能使用控制台,如果仅使用Equinox启动,则您将不会获得这些捆绑软件。 使此工作最快的方法是创建一个具有以下内容的文件: 注意, 您将不得不根据实际拥有的版本检查这些捆绑软件的版本号。我使用SDK-4.2M6进行了尝试,其中某些可能已在RC3中更改。

  • 我正在将我的spring-java项目转移到OSGi。 我有一些依赖项,这些依赖项在spring ebr repo或maven repo中不能作为包提供。处理它们的最佳方法是什么? null

  • 找不到MessageSource的ResourceBundle[classpath:/org/springframework/security/messages]源:找不到基本名称的bundle classpath:/org/springframework/security/messages,locale ru我找不到任何在Java中设置国际化的解决方案 我的代码是这样的

  • 问题内容: 编辑:Symfony最佳做法回答了我的大部分问题。 关于我的Symfony2应用程序,我有几个问题。 它将有一个前端和一个后端,并且它们将使用一些通用代码(例如日期显示器,分页器,一些经常使用的模板等)。 因此,我创建了一个FrontendBundle和一个BackendBundle,它们分别包含各自的布局。第一个问题:为前端和后端创建捆绑包(这是甚至没有控制器的“通用”捆绑包)的优良

  • 我使用EclipseIndigo使用OSGiJava框架开发了一些包。有一个主捆绑包,它依赖于其他捆绑包,并且具有要运行的主程序。如果我尝试在Eclipse中运行所有捆绑包,一切都正常工作,但是如果我将每个捆绑包保存为一个JAR,并在命令行中启动OSGi框架,当我尝试启动主捆绑包时,会出现异常<code>NoClassDefFoundError。找不到的类是依赖项。包的其余部分处于活动状态,主包刚

  • 问题内容: 我对mvc4捆绑器有一个奇怪的问题,不包括扩展名为.min.js的文件 在我的BundleConfig类中,我声明 我认为 当它渲染时,它只会渲染 如果我将jquery.tmpl.min.js重命名为jquery.tmpl.js(并相应地更新捆绑软件中的路径),则两个脚本均正确呈现。 是否有一些配置设置导致其忽略“ .min.js”文件? 问题答案: 我最初发布的解决方案是有问题的(很