-
-
Notifications
You must be signed in to change notification settings - Fork 4.8k
Closed
Labels
type:bugImpaired feature or lacking behavior that is likely assumedImpaired feature or lacking behavior that is likely assumed
Description
LiveQuery not triggering event callbacks when using query.containedIn.
Steps to reproduce
A) Parse database contains following classes:
Proposal = [
{
objectId: gLbeSQLSkf,
itemId: 2iyjvsN1Pi,
retailPrice: 31
},
{
objectId: EoJRfZcLth,
itemId: Q8t0uSnvKn,
Price: 4
}
]
Items = [
{itemId: 2iyjvsN2Pi},
{itemId: Q8t0uSnvKn}
]
B) JavaScript nextProps variable contains following
nextProps.items = [
{itemId: 2iyjvsN2Pi},
{itemId: Q8t0uSnvKn}
]
C) Code for Query subscription
componentWillReceiveProps( nextProps ) {
{
let proposalQuery = new Parse.Query('Proposal');
let items = nextProps.items;
let itemPointers = items.map((item) => {
let ItemPointer = new Parse.Object("Item");
ItemPointer.id = item.itemId;
return ItemPointer;
});
proposalQuery.containedIn('itemId', itemPointers);
var proposalSubscription = proposalQuery.subscribe();
proposalSubscription.on('create', (proposal) => {
console.log('created new proposal');
});
proposalSubscription.on('update', (proposal) => {
console.log('updated existing proposal');
});
}
E) Change retailPrice in Parse Dashboard from 31 to 30
F) Output from Parse Server (verbose)
verbose: PUT /parse/classes/Proposal/gLbeSQLSkf { host: 'localhost:1337',
connection: 'keep-alive',
'content-length': '205',
origin: 'http://0.0.0.0:4040',
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.84 Safari/537.36',
'content-type': 'text/plain',
accept: '*/*',
referer: 'http://0.0.0.0:4040/apps/idpractice/browser/Proposal',
'accept-encoding': 'gzip, deflate',
'accept-language': 'en-US,en;q=0.8' } {
"retailPrice": 30
}
verbose: {
"response": {
"updatedAt": "2016-06-17T13:03:20.119Z"
}
}
G. Subscription 'update' Callback doesn't trigger
H. Remove query.containedIn from query
componentWillReceiveProps( nextProps ) {
{
let proposalQuery = new Parse.Query('Proposal');
var proposalSubscription = proposalQuery.subscribe();
proposalSubscription.on('create', (proposal) => {
console.log('added mfr model#: ', proposal.get('manufacturerModelNumber'));
});
proposalSubscription.on('update', (proposal) => {
console.log('updated mfr model#: ', proposal.get('manufacturerModelNumber'));
});
}
I) Change retailPrice in Parse Dashboard from 30 back to 31
J) Output from Parse Server (verbose)
verbose: PUT /parse/classes/Proposal/gLbeSQLSkf { host: 'localhost:1337',
connection: 'keep-alive',
'content-length': '205',
origin: 'http://0.0.0.0:4040',
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.84 Safari/537.36',
'content-type': 'text/plain',
accept: '*/*',
referer: 'http://0.0.0.0:4040/apps/idpractice/browser/Proposal',
'accept-encoding': 'gzip, deflate',
'accept-language': 'en-US,en;q=0.8' } {
"retailPrice": 31
}
verbose: {
"response": {
"updatedAt": "2016-06-17T13:23:43.386Z"
}
}
K. Subscription 'update' Callback triggers (note: no output from parse server in verbose mode)
L. Demonstrate that query.containedIn works with query.find
componentWillReceiveProps( nextProps ) {
{
let proposalQuery = new Parse.Query('Proposal');
let items = nextProps.items;
let itemPointers = items.map((item) => {
let ItemPointer = new Parse.Object("Item");
ItemPointer.id = item.itemId;
return ItemPointer;
});
proposalQuery.containedIn('itemId', itemPointers);
proposalQuery.find({
success: function (proposals) {
console.log('number of proposal = ' + proposals.length)
},
error: function(error) {
console.log('error: ', error);
}
});
}
M. Console outputs "number of proposals = 2"
Expected Results
See above
Actual Outcome
See above
Environment Setup
- Server
- parse-server version: 2.2.12
- Operating System: react-native: 0.26.1 running on iOS 9.3 simulator
- Hardware: iOS 9.3 simulator
- Localhost or remote server? Localhost
- Database
- MongoDB version: Running mLab "SandBox" tier
- Localhost or remote server? mLab
- Client
- Parse JS API: 1.8.5
Logs/Trace
See above
ziyadparekh
Metadata
Metadata
Assignees
Labels
type:bugImpaired feature or lacking behavior that is likely assumedImpaired feature or lacking behavior that is likely assumed