10

Sau khi cập nhật dự án Firebase SDK, tôi nhận thấy ứng dụng của tôi thường xuyên mất kết nối với cơ sở dữ liệu Firebase. Thời gian cần thiết để ngắt kết nối từ vài phút đến hơn một giờ. Sau khi ngắt kết nối, ứng dụng sẽ không kết nối lại cho đến khi tôi đã đăng xuất hoặc xóa dữ liệu ứng dụng.Mất kết nối với cơ sở dữ liệu Firebase sau khi cập nhật lên SDK mới

Cũng ngay trước khi tôi bị mất kết nối, một mục trong các trạng thái đăng nhập mà thẻ auth của tôi đã hết hạn:

PersistentConnection: pc_0 - Auth thẻ bị thu hồi: (. Auth thẻ hết hạn) expired_token

FYI, tôi đang sử dụng Twitter và Facebook để xác thực của mình và không gặp phải sự cố như vậy với SDK Firebase trước đó.

Tôi đã tạo một dự án mới (với cơ sở dữ liệu thời gian thực và xác thực đơn giản) để xem sự cố vẫn còn tồn tại hay không. Tôi đã kèm theo đoạn mà dự án mới:

Các build.gradle:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.3" 

    defaultConfig { 
     applicationId "com.sample.gideon.test" 
     minSdkVersion 17 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

repositories { 
    mavenCentral() 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:23.4.0' 
    compile 'com.android.support:support-v4:23.4.0' 
    compile 'com.facebook.android:facebook-android-sdk:4.12.0' 
    compile 'com.google.firebase:firebase-database:9.0.0' 
    compile 'com.google.firebase:firebase-auth:9.0.0' 
    compile 'com.android.support:design:23.4.0' 
} 

apply plugin: 'com.google.gms.google-services' 

Các hoạt động thẩm định theo hướng dẫn facebook đăng nhập căn cứ hỏa lực, mà thực sự đăng nhập thành công người dùng trong và gửi chúng đến MainActivity mà sau đó theo dõi các kết nối cơ sở dữ liệu bằng cách sử dụng đoạn mã sau:

MainActivity

DatabaseReference connectedRef = FirebaseDatabase.getInstance().getReference(".info/connected"); 
    connectedRef.addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot snapshot) { 
      boolean connected = snapshot.getValue(Boolean.class); 
      if (connected) { 
       System.out.println("connected"); 
      } else { 
       System.out.println("not connected"); 
      } 
     } 

     @Override 
     public void onCancelled(DatabaseError error) { 
      System.err.println("Listener was cancelled"); 
     } 
    }); 

Có ai biết điều gì khiến ứng dụng mất kết nối không? Cho đến nay, lỗi đã trải qua trong 2 dự án khác nhau với 2 nhà cung cấp auth (twitter và facebook) và chỉ sau khi cập nhật lên Firebase mới.

+0

Hi Gents! Chúng tôi đang xem xét nó! Có vẻ như điều này sẽ được theo dõi tốt nhất bằng cách gửi lỗi tới [support] (https://firebase.google.com/support/) – Kato

+0

@Kato Cảm ơn bạn. Tôi sẽ gửi báo cáo và đính kèm trang này để tham khảo. –

+1

Tôi có thể xác nhận bằng cách sử dụng xác thực email/mật khẩu với firebase - *: 9.0.0. Và cũng sử dụng firebase-server-sdk: 3.0.0, trong trường hợp xác thực trường hợp này tuân theo tệp serviceAccountCredentials.json. Trong cả hai trường hợp sau một khoảng thời gian im lặng (vài giờ) nhật ký hiển thị một số thông báo như sau: "PersistentConnection ...". Điều này thật lạ vì trong máy chủ tôi thậm chí không cho phép sự kiên trì. – rmarau

Trả lời

5

Firebase khắc phục sự cố kết nối với bản phát hành 9.0.2. Ngoài ra đối với bất cứ ai vẫn gặp khó khăn, tôi tìm thấy câu trả lời trên this page rất hữu ích. Đặc biệt là the troubleshoot guide do nhóm firebase sản xuất cho những người vẫn gặp sự cố mã thông báo xác thực sau khi cập nhật lên 9.0.2.

Các vấn đề liên quan