inProgress-team / inProgress-team/react-native-meteor

Meteor.subscribe vs Meteor.ddp.sub issue

Open
#225 5 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
688
Forks
200
PR merge metrics
No merged PRs in 30d

Description

**Description:**
When subscribing directly using DDP (whether bundled with `react-native-meteor` using `Meteor.ddp.sub` or standalone libraries) the code works as expected:

1. the connection is established
2. the data is "added"
3. the subscription is "ready"

However, when subscribing through `Meteor.subscribe` the following occurs:

1. the connection is established
2. the data is "added"
3. the subscription is "ready"
4. the data is "removed"
5. the subscription is "nosub"
6. the data is "added"
7. the subscription is "ready"

**Code**

File: `index.ios.js`

```
import React from 'react';
import { AppRegistry, View } from 'react-native';
import Meteor from 'react-native-meteor';
// import App from './src/index';

Meteor.connect('wss:///websocket');

Meteor.waitDdpConnected(() => {
// connect
Meteor.ddp.on("connected", () => {
console.log("Connected");
});
Meteor.ddp.on("disconnected", () => {
console.log("Disconnected");
});

const userId = '';
// subscribe

// =====================================
// THIS WORKS FINE
// const subId = Meteor.ddp.sub("restricted", [userId]);

// =====================================
// THIS DOES NOT WORK AS EXPECTED
const subId = Meteor.subscribe("restricted", userId, {
onReady: () => {
console.log('restricted ready');
},
onStop: () => {
console.log('restricted stopped');
},
});

console.log(subId);
Meteor.ddp.on("ready", message => {
console.log(message);
if (message.subs.includes(subId)) {
console.log("restricted ready");
}
});
Meteor.ddp.on("added", message => {
console.log(message);
});
Meteor.ddp.on("changed", message => {
console.log(message);
});
Meteor.ddp.on("removed", message => {
console.log(message);
});
Meteor.ddp.on("result", message => {
console.log(message);
});
Meteor.ddp.on("nosub", message => {
console.log(message);
});
});

const App = () => ;

AppRegistry.registerComponent('RNApp', () => App);
```

**Why is this happening?**

**Console log output when it works: (using `Meteor.ddp.sub`)**
screen shot 2017-05-06 at 8 45 09 am

**Console log output when it doesnt work as expected: (using `Meteor.subscribe`)**
screen shot 2017-05-06 at 8 45 30 am

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.