GVKun编程网logo

Android studio - Firebase 调用上的 Java 空指针(android studio空指针异常)

10

本篇文章给大家谈谈Androidstudio-Firebase调用上的Java空指针,以及androidstudio空指针异常的知识点,同时本文还将给你拓展androidstudiofirebase数

本篇文章给大家谈谈Android studio - Firebase 调用上的 Java 空指针,以及android studio空指针异常的知识点,同时本文还将给你拓展android studio firebase数据库:如何从子子获取数据、Android Studio – 无法解析符号’firebase’、Android studio 如何让查看某人个人资料的其他用户的可见性消失 Firebase、Android Studio 生成 JavaDoc 空指针异常|文档编码出错|内存溢出等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

Android studio - Firebase 调用上的 Java 空指针(android studio空指针异常)

Android studio - Firebase 调用上的 Java 空指针(android studio空指针异常)

我发现你的代码有问题。 调用 mReferenceCrossings 的子方法时出现您的错误。

public class FirebaseDatabaseHelper {
    public static FirebaseDatabase mDatabase ;
    public static DatabaseReference mReferenceCrossings;

   ..................

    public static ArrayList<Location> sortedQuery(String reference,String orderKey) {
        ArrayList<Location> results = new ArrayList<Location>();
        
        // Your error happend by this line. because mReferenceCrossings is null.
        DatabaseReference targetRef = mReferenceCrossings.child(reference);
        
        .....................
    }
}

因为 mReferenceCrossingsnullmReferenceCrossings 将在您的代码的以下方法中分配。

public FirebaseDatabaseHelper(FirebaseDatabase mDatabase) {
   mDatabase = FirebaseDatabase.getInstance();
    mReferenceCrossings = mDatabase.getReference();
}

但是我在你的主类中没有找到这个方法调用的任何部分。 您只是在没有创建 FirebaseDatabaseHelper 的情况下调用了 sort 方法。 所以你的代码有错误。

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {

    ................................   

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);

        .................................................

        // This method called without init firebase instance        
        FirebaseDatabaseHelper.sortedQuery("mReferenceCrossings","Latitude");
   }

}

编辑:解决方案更新。

解决方法有多种。
这是其中之一。
所以你需要像这样更新 FirebaseDatabaseHelper。

public class FirebaseDatabaseHelper {
    public static FirebaseDatabase mDatabase = FirebaseDatabase.getInstance();
    public static DatabaseReference mReferenceCrossings = mDatabase.getReference();

    ...........
}

android studio firebase数据库:如何从子子获取数据

android studio firebase数据库:如何从子子获取数据

您快到了。您只需要一个额外的循环,即可满足JSON中未知密钥的额外需求:

private void showbumps() {
    ref =FirebaseDatabase.getInstance().getReference().child("SpeedBump");
    ref.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot snapshot) {
            List<SpeedBump> bumps = new ArrayList<>();
            bumps.clear();
            for (DataSnapshot locationSnapshot: snapshot.getChildren()) {
                for (DataSnapshot bumpSnapshot: locationSnapshot.getChildren()) {
                    SpeedBump bump = bumpSnapshot.getValue(SpeedBump.class);
                    ...

我发现为快照变量赋予清晰的名称以指示它们捕获的数据的哪一部分最有用。

Android Studio – 无法解析符号’firebase’

Android Studio – 无法解析符号’firebase’

我目前正在将应用升级到新的Firebase版本.我按照指南,在项目build.gradle的依赖项中包含classpath“com.google.gms:google-services:3.0.0”以及编译“com.google.firebase:firebase-core:9.0.1”在我的模块build.gradle的依赖项中,还应用插件:’com.google.gms.google-services’在该文件的末尾.

我在我的导入中获得了“无法解析符号’firebase’”,即导入com.google.firebase.database.DatabaseReference;.这些不是构建时出现的错误,因此这似乎有效,但它们在Android Studio的代码编辑器中可见.

几天前进口工作正常(除了正在维护的FirebaseAuth).从那时起,我没有对代码进行任何改动(除了尝试升级到9.0.2,导致相同的结果).我唯一做的就是更新Android SDK的一些组件,但我不记得是哪一个. Android SDK以及Google Repository和Google Play服务都是最新版本.重建,清理和无效缓存/重启无效.

任何想法如何解决这一问题?

解决方法:

您需要在build.gradle(app)中添加此依赖项

compile 'com.firebase:firebase-client-android:2.5.0'

Android studio 如何让查看某人个人资料的其他用户的可见性消失 Firebase

Android studio 如何让查看某人个人资料的其他用户的可见性消失 Firebase

如何解决Android studio 如何让查看某人个人资料的其他用户的可见性消失 Firebase?

当用户访问另一个用户的个人资料时,活动会切换,但可以编辑该个人资料,依此类推,它不是私人模式。所以我希望删除某些部分的可见性。仅针对用户访问的个人资料。否则,例如,我必须将新活动设为私有,但这都需要时间,我认为还有另一种解决方案

解决方法

如果您希望该用户只能访问其他用户的某些特定属性,您可以进行比较。

假设 userA 想要访问 userB 个人资料。 userA 登录后,您需要存储他/她的 uid,可能使用 SharedPreference。

final String userUid = FirebaseUser.getCurrentUser().getUid();
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt(getString(R.string.user_uid),userUid);
editor.apply();

一旦值被存储,然后 userA 访问 userB 的个人资料。您需要检索userB 的信息,包括他/她的uid。所以我假设您已经拥有 userB uid。然后,在 onCreate 处,您可以进行比较检查这是否是当前用户。之后,您可以编辑该用户的某些属性。

final Intent intent = getIntent();
if (intent.getExtras() != null) {
   userBUid = intent.getExtras().getString(getString(R.string.user_b_uid));
   btnEdit.setEnable(true);
}

Android Studio 生成 JavaDoc 空指针异常|文档编码出错|内存溢出

Android Studio 生成 JavaDoc 空指针异常|文档编码出错|内存溢出

一般使用Android Studio生成 JavaDoc会有三个问题: 

1、空指针异常 

    Tools --> Generate JavaDoc -->打开对话框活,在"Other command line arguments"输入“-bootclasspath /Users/用户名/sdk/platforms/android-22/android.jar”,每个人电脑不尽相同,指定android.jar的位置就行。

2、文档编码出错

    Tools --> Generate JavaDoc -->打开对话框活,在"Other command line arguments"输入-encoding UTF-8 -charset UTF-8 

3、内存溢出

     Tools --> Generate JavaDoc -->打开对话框活,在"Other command line arguments"输入“-J-Xmx1024m“ 

     或者在 Maximum heap size(Mb) 里直接填入值1024

(如果两个参数都加,参数之间需要空格隔开)

附命令:


用法: javadoc [options] [packagenames] [sourcefiles] [@files]
-overview <file>          从 HTML 文件读取概览文档
-public                   仅显示 public 类和成员
-protected                显示 protected/public 类和成员 (默认值)
-package                  显示 package/protected/public 类和成员
-private                  显示所有类和成员
-help                     显示命令行选项并退出
-doclet <class>            通过替代 doclet 生成输出
-docletpath <path>        指定查找 doclet 类文件的位置
-sourcepath <pathlist>    指定查找源文件的位置
-classpath <pathlist>     指定查找用户类文件的位置
-exclude <pkglist>        指定要排除的程序包列表
-subpackages <subpkglist> 指定要递归加载的子程序包
-breakiterator            计算带有 BreakIterator 的第一个语句
-bootclasspath <pathlist> 覆盖由引导类加载器所加载的
			   类文件的位置
-source <release>         提供与指定发行版的源兼容性
-extdirs <dirlist>        覆盖所安装扩展的位置
-verbose                  输出有关 Javadoc 正在执行的操作的信息
-locale <name>            要使用的区域设置, 例如 en_US 或 en_US_WIN
-encoding <name>          源文件编码名称
-quiet                    不显示状态消息
-J<flag>                  直接将 <flag> 传递到运行时系统
-X                        输出非标准选项的提要

通过标准 doclet 提供:
-d <directory>                    输出文件的目标目录
-use                              创建类和程序包用法页面
-version                          包含 @version 段
-author                           包含 @author 段
-docfilessubdirs                  递归复制文档文件子目录
-splitindex                       将索引分为每个字母对应一个文件
-windowtitle <text>               文档的浏览器窗口标题
-doctitle <html-code>             包含概览页面的标题
-header <html-code>               包含每个页面的页眉文本
-footer <html-code>               包含每个页面的页脚文本
-top    <html-code>               包含每个页面的顶部文本
-bottom <html-code>               包含每个页面的底部文本
-link <url>                       创建指向位于 <url> 的 javadoc 输出的链接
-linkoffline <url> <url2>         利用位于 <url2> 的程序包列表链接至位于 <url> 的文档
-excludedocfilessubdir <name1>:.. 排除具有给定名称的所有文档文件子目录。
-group <name> <p1>:<p2>..         在概览页面中, 将指定的程序包分组
-nocomment                        不生成说明和标记, 只生成声明。
-nodeprecated                     不包含 @deprecated 信息
-noqualifier <name1>:<name2>:...  输出中不包括限定符的列表。
-nosince                          不包含 @since 信息
-notimestamp                      不包含隐藏时间戳
-nodeprecatedlist                 不生成已过时的列表
-notree                           不生成类分层结构
-noindex                          不生成索引
-nohelp                           不生成帮助链接
-nonavbar                         不生成导航栏
-serialwarn                       生成有关 @serial 标记的警告
-tag <name>:<locations>:<header>  指定单个参数定制标记
-taglet                           要注册的 Taglet 的全限定名称
-tagletpath                       Taglet 的路径
-Xdocrootparent <url>             将文档注释中出现的所有后跟 /.. 的 @docRoot 替换为 <url>
-charset <charset>                用于跨平台查看生成的文档的字符集。
-helpfile <file>                  包含帮助链接所链接到的文件
-linksource                       以 HTML 格式生成源文件
-sourcetab <tab length>           指定源中每个制表符占据的空格数
-keywords                         使程序包, 类和成员信息附带 HTML 元标记
-stylesheetfile <path>            用于更改生成文档的样式的文件
-docencoding <name>               输出编码名称



今天关于Android studio - Firebase 调用上的 Java 空指针android studio空指针异常的分享就到这里,希望大家有所收获,若想了解更多关于android studio firebase数据库:如何从子子获取数据、Android Studio – 无法解析符号’firebase’、Android studio 如何让查看某人个人资料的其他用户的可见性消失 Firebase、Android Studio 生成 JavaDoc 空指针异常|文档编码出错|内存溢出等相关知识,可以在本站进行查询。

本文标签: