簡體   English   中英

通過另一個類從 firebase 數據庫獲取數據時出現 NullPointerException

[英]NullPointerException while getting data via another class from firebase Database

我創建了一個名為UserInfo的類來從 firebase 數據庫中獲取所有用戶數據。 這是我用來獲取 firebase 數據(用戶名)的方法。

 public String getUsername() {
        final Firebase usernameLink = new Firebase(firebaseLink + getUid());
        usernameLink.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                username = (String) dataSnapshot.getValue();
            }

            @Override
            public void onCancelled(FirebaseError firebaseError) {
            }
        });
        return username;
    }

而且firebase鏈接沒有問題。 它也提供了用戶名。

但在另一堂課中,我想獲取用戶名。

所以我做了那個類的對象..

UserInfo userInfo = new UserInfo();

要獲取用戶名,

username = userInfo.getUsername();

我在onCreate方法中編寫了前面的代碼。

在我的應用程序中單擊按鈕時,我試圖將用戶名添加為我的孩子。

send_request_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                request_text = request_msg.getText().toString();
                URL = new Firebase(firebaseUrl);
               Firebase addChild = URL.child(username);
                                addChild.setValue("hhhhh");        
                        }
                );

好吧,當我用一些虛擬的預定義字符串數據替換用戶名時,此代碼有效。 但是當我添加用戶名時,它給了我以下錯誤。

java.lang.NullPointerException: Can't pass null for argument 'pathString' in child()
 at com.firebase.client.Firebase.child(Firebase.java:187)
 at com.buckydroid.anonchat.SendRequest$1$1.onClick(SendRequest.java:67)
 at android.view.View.performClick(View.java:5637)
 at android.view.View$PerformClick.run(View.java:22433)
 at android.os.Handler.handleCallback(Handler.java:751)
 at android.os.Handler.dispatchMessage(Handler.java:95)
 at android.os.Looper.loop(Looper.java:154)
 at android.app.ActivityThread.main(ActivityThread.java:6126)
 at java.lang.reflect.Method.invoke(Native Method)
 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

在運行此方法之前,請確保您的變量 firebaseLink 已初始化並分配給某些數據。 我看到的 NullPointerException 輸出告訴我您正在嘗試將一個空變量傳遞給 Firebase 類的 pathString 變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM