연결이 lost/regained 경우 탐지합니다 중포 기지

현재 중포 기지 내 작업을 하는 전략을 있을 경우 오퍼링입니다 탐지합니다 서버 접속 실주했습니다 및 / 또는 다시?

39 m 모바일 장치를 위한 임시 i& 감안할 때, 일부 오프라인된 신뢰할 수 있는 수단을 사용할 수 있는 시기를 결정할 데이터 레이어에는 중포 기지 및 싶다.

해결책

이는 일반적으로 요청되었습니다 기능을 API 를 릴리즈됨 업데이트하십시오, 우리 바로 이 일을 하게 내버려 둘!

var firebaseRef = new Firebase('http://INSTANCE.firebaseio.com');
firebaseRef.child('.info/connected').on('value', function(connectedSnap) {
  if (connectedSnap.val() === true) {
    /* we're connected! */
  } else {
    /* we're disconnected! */
  }
});

전체 문서 http://ipw2100.sourceforge. 있다 https://firebase.google.com/docs/database/web/offline-capabilities.

해설 (8)
  • Updated:* 대부분의 경우 관련 presence 기능, 온라인 / 오프라인 클라이언트여야 아는 것이 좋습니다. 특별한 위치에 있는 때마다 실시간으로 데이터베이스를 클라이언트뿐 중포 기지 제공하십시오 /.info/connected 업데이트되도록 client& # 39 의 연결 상태 변화. 예를 들어보겠습니다.
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");
  }
});
해설 (3)

안드로이드 사용자를 위한 단 하나의 함수 호출 () '' 론디스코너스 오프라인된 할 수 있습니다.

난 내 채팅 앱으로 사용자 요구에 따라 얻을 수 있는 이런게야 한 경우, 자동으로 인터넷 사용자 또는 오프라인된 네트워크연결 손실됩니다 끊겨

DatabaseReference presenceRef = FirebaseDatabase.getInstance().getReference("USERS/24/online_status");

presenceRef.onDisconnect().setValue(0);

'0' Here I am making online_status 사용자에 대한 해제 네트워크 Id 가 24 중포 기지.

'가치' 는 경로 제레프랑스 (USERS/24/online_status&quot ";) / 온라인 오프라인 상에서 업데이트하려면 합니다.

읽을 수 있어 it 에 대한 오프라인 기능

참고로 시간이 약 2-10 분 론디스코너스 실행하십시오 중포 기지 () 함수.

해설 (6)

제안된 솔루션 didn& # 39, t, 그래서 내 업무에 # 39, & # 39 health/check& 연결 및 판독값 써서 확인할 수 있도록 했다. 값. 이것은 코드:

const config = {databaseURL: `https://${projectName.trim()}.firebaseio.com/`};
//if app was already initialised delete it
if (firebase.apps.length) {
    await firebase.app().delete();
}
// initialise app
let cloud = firebase.initializeApp(config).database();
// checking connection with the app/database
let connectionRef = cloud.ref('health');
connectionRef.set('check')
    .then(() => {
        return connectionRef.once("value");
    })
    .then(async (snap) => {
        if (snap.val() === 'check') {
            // clear the check input
            await connectionRef.remove();
            // do smth here becasue it works
    }
});

! [입력하십시오. 이미지 여기에 설명을] [1]

해설 (0)

중포 기지 웹

firebase.database().ref(".info/connected").on("value",(snap)=> {});
해설 (0)