
我知道这已被问了很多,但我仍然可以让它工作.这是我的代码:
private int test;DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();DatabaseReference userRef = rootRef.child("Users");test = 0;userRef.addListenerForSingleValueEvent(new ValueEventListener() { @OverrIDe public voID onDataChange(DataSnapshot dataSnapshot) { if (dataSnapshot.hasChild(userID)) test = 1; else test = 2; } @OverrIDe public voID onCancelled(DatabaseError databaseError) { }});Log.d(TAG, "Test = " + test);这是Firebase上的内容:
> appname-e545e
>用户
> userID
我不知道为什么但变量“test”总是返回值0,这意味着addListenerForSingleValueEvent不起作用.感谢您提前帮助
解决方法:
数据是从Firebase异步加载的.到日志测试时,onDataChange还没有运行.
要查看此 *** 作,请在onDataChange中添加更多日志记录:
私人int测试;
test = 0;userRef.addListenerForSingleValueEvent(new ValueEventListener() { @OverrIDe public voID onDataChange(DataSnapshot dataSnapshot) { if (dataSnapshot.hasChild(userID)) { test = 1; } else { test = 2; } Log.d(TAG, "Test2 = " + test); } @OverrIDe public voID onCancelled(DatabaseError databaseError) { throw databaseError.toException(); // Don't ignore errors }});Log.d(TAG, "Test = " + test);现在你先看到:
Test = 0
然后一旦数据加载并调用onDataChange:
Test = 1
要么
Test = 2
因此,您应始终在onDataChange()中放置(或调用)需要数据库数据的代码.
总结以上是内存溢出为你收集整理的Android Firebase addListenerForSingleValueEvent不起作用全部内容,希望文章能够帮你解决Android Firebase addListenerForSingleValueEvent不起作用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)