本篇文章给大家谈谈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数据库:如何从子子获取数据
- Android Studio – 无法解析符号’firebase’
- Android studio 如何让查看某人个人资料的其他用户的可见性消失 Firebase
- Android Studio 生成 JavaDoc 空指针异常|文档编码出错|内存溢出
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);
.....................
}
}
因为 mReferenceCrossings
是 null
。
mReferenceCrossings
将在您的代码的以下方法中分配。
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数据库:如何从子子获取数据
您快到了。您只需要一个额外的循环,即可满足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’
我目前正在将应用升级到新的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?
当用户访问另一个用户的个人资料时,活动会切换,但可以编辑该个人资料,依此类推,它不是私人模式。所以我希望删除某些部分的可见性。仅针对用户访问的个人资料。否则,例如,我必须将新活动设为私有,但这都需要时间,我认为还有另一种解决方案
解决方法
如果您希望该用户只能访问其他用户的某些特定属性,您可以进行比较。
假设 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会有三个问题:
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 空指针异常|文档编码出错|内存溢出等相关知识,可以在本站进行查询。
本文标签: