【发布时间】:2017-08-30 18:21:07
【问题描述】:
我正在创建一个应用程序,它将在 firebase 数据库中保存许多用户及其客户端。我有具有相关客户端的用户,我想显示当前用户的客户端列表,但是当我提示显示客户端时,应用程序崩溃了。我不知道这是由于不正确的代码还是客户端的布局。
这一点
userClients.addListenerForSingleValueEvent(new ValueEventListener() {
程序不喜欢 ValueEventListener。
任何帮助将不胜感激。
public class ClientList extends AppCompatActivity {
String userId;
FirebaseAuth mAuth;
FirebaseUser firebaseUser;
DatabaseReference databaseRef;
String clientAddress;
String clientPhone;
ListView myClientList;
List<String> clientArrayList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_client_list);
mAuth = FirebaseAuth.getInstance();
myClientList = (ListView) findViewById(R.id.clientList);
clientArrayList = new ArrayList<>();
getClientList();
}
public void getClientList(){
databaseRef = FirebaseDatabase.getInstance().getReference();
firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
if (firebaseUser!=null){
userId = firebaseUser.getUid();
}
Query userClients = databaseRef.child("users").child(userId);
userClients.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// Iterate through the friends JSON tree (for current user)
for (DataSnapshot myDatabase : dataSnapshot.getChildren()) {
clientAddress = myDatabase.child("Address").getValue(String.class);
clientPhone = myDatabase.child("phone").getValue(String.class);
clientArrayList.add( clientAddress + ", " + clientPhone );
}
createListView();
if (clientArrayList.isEmpty()) {
Toast.makeText(ClientList.this, "No Clients", Toast.LENGTH_LONG).show();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
public void createListView() {
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, getResources().getStringArray(Integer.parseInt(userId)));
myClientList.setAdapter(adapter);
}
ClientList}: java.lang.NullPointerException: Can't pass null for argument 'pathString' in child()
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: java.lang.NullPointerException: Can't pass null for argument 'pathString' in child()
【问题讨论】:
-
你的日志说什么?发布堆栈跟踪
-
错误是什么?
-
你能把你的错误日志或logcat放在这里吗?
-
我编辑了我的帖子以包含错误。它说 NullPointer ...不能在 child 中传递 null。
标签: java android firebase firebase-realtime-database event-listener