inProgress-team / inProgress-team/react-native-meteor
Meteor.subscribe vs Meteor.ddp.sub issue
- 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`)**

**Console log output when it doesnt work as expected: (using `Meteor.subscribe`)**
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.